-5
int max = 100;
    String result="";

    // loop through the numbers one by one
    for (int i = 1; i<max; i++) {
        boolean isPrimeNumber = true;

        // check to see if the number is prime
        for (int j = 2; j < i; j++) {
            if (i % j == 0) {
                isPrimeNumber = false;
                break; // exit the inner for loop
            }
        }
        // print the number if prime
        if (isPrimeNumber) {
           result=result+i+",";//used to holding the value for i
        }
        lblDisplay.setText(""+result);//used to holding the value for i
    }
}                    

首先 i 将 i 的值初始化为 1,系统检查 1 是否小于 100...它将继续....稍后将 j 的值初始化为 2,如果 j 的值小于 i,系统将循环....但是 2 大于 1..为什么系统仍然可以生成结果?谁能告诉我为什么?

4

1 回答 1

0

由于 1 是一个特殊数字,它不属于素数,因此您必须在外循环内单独编写 1 的条件:

    if(i == 1)
       isPrimeNumber = false;

并将内循环

for (int j = 2; j < i; j++)
To
for (int j = 2; j <= i/2 ; j++)

于 2013-10-26T07:47:04.693 回答