2

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

4

2 回答 2

7

您打印j而不是i,将您的println()行更改为:

System.out.println(i);

在-loopj = i + 1之后,您的结果“太大了” 。while

于 2013-03-25T15:35:45.517 回答
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);
    }
}
于 2013-03-25T15:38:15.787 回答