java的Prime编号程序

时间:2013-03-25 15:32:13

标签: java numbers primes logic-programming

我是编程新手,需要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

2 个答案:

答案 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);
    }
}
相关问题