这是我的程序,可以计算出所有不超过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 + " ");
        }
    }
}

最佳答案

当您将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 + " ");
}

关于java - 我的程序遇到问题。我正在尝试打印最多10,000的所有素数,但不会打印出1,2和3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35608748/

10-12 03:47