java的Prime编号程序

我是编程新手,需要java程序的帮助。 我希望我的程序返回1到10之间的所有素数。

for(int i=1; i<=10; i++){ int factors = 0; int j=1; while(j<=i){ if(i % j == 0){ factors++; } j++; } if(factors==2){ System.out.println(j); } } 

我没有收到2,3,5和7,而是收到3,4,6和8

只打印我而不是j

 for(int i=1; i<=10; i++){ int factors = 0; int j=1; while(j<=i){ if(i % j == 0){ factors++; } j++; } if(factors==2){ System.out.println(i); } } 

您打印j而不是i ,将println()行更改为:

 System.out.println(i); 

while -loop之后,你的结果是“一个太大”,因为j = i + 1