我的程序有问题。我正在尝试打印出所有素数高达10,000,但它不会打印出1,2和3

时间:2016-02-24 17:16:39

标签: java

这是我的程序,可以找出所有素数高达10,000

public class Prime {
    public static void main(String []args) {
        boolean prime = true;

        for(int i = 1; i <= 10000; i++) {//possible prime numbers
            for(int a = 2; a <= i/2; a++) {
                if(i % a == 0){
                    prime = false;
                }
            }
            if(prime)
                System.out.print(i + " ");
        }
    }
}

1 个答案:

答案 0 :(得分:7)

当您将prime标记设置为false时,它会永久保留false。您需要在外部true循环的每次新运行开始时设置for

boolean prime = true;
for(int i = 1; i <= 10000; i++){
    prime = true;  // ADD THIS LINE !!
    for(...){...}
    if(prime)
        System.out.print(i + " ");
}