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

0 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 + " ");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Arc*_*ord 7

当你设置你的prime旗帜falsefalse永远保持.您需要true在外for循环的每次新运行开始时设置它.

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