我是编程新手,需要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
答案 0 :(得分:7)
您打印j
代替i
,将println()
行更改为:
System.out.println(i);
j = i + 1
循环后,您的结果与while
一样“过大”。
答案 1 :(得分:3)
只打印i而不是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);
}
}