【发布时间】:2013-08-06 09:19:09
【问题描述】:
package PrimeNum;
public class primeNum {
public static void main(String args[]){
int flag = 0;
/*
for(int i = 2; i <= 100; i++){
if(i % 2 != 0 && i % 3 != 0 && i % 4 != 0 && i % 5 != 0 &&
i % 6 != 0 && i % 7 != 0 && i % 8 != 0 && i % 9 != 0 && i % 10 != 0 ){
System.out.print(i + " ");
}
}
*/
System.out.println();
for(int i = 2; i <= 100; i++){
for(int j = 2; j <= 10; j++){
if(i % j != 0) {
flag++;
}
}
if(flag == 9 || flag == 8){
System.out.print(i + " ");
flag = 0;
}
}
}
}
代码是使用 Java 编写的,我似乎无法找到为什么它在整个循环中只打印 2 和 3 到 100。请帮助?
【问题讨论】:
-
你的程序应该做什么?你为什么检查
flag == 9 || flag == 8?我怀疑问题是标志在 3 之后 > 9,所以你永远不会得到另一个输出。 -
如果您不给我们SSCCE的代码,您将得不到任何答复,因为目前我们无法编译您的代码以进行检查。
-
当值 i 不能被值 j 整除时,它会增加 flag 以指示它不能被它整除的数字的数量。由于您只需要最少的数字 2-10(9 个数字)来除以一个数字以查看它是否为素数,因此当程序意识到该数字不能被所述数字整除时,它会将其打印出来。我为小于 10 的数字包括了 8。但是,它只打印 2 和 3
-
顺便说一句,你为什么在这里发布评论代码?