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的值初始化为1并且系统检查1是否小于100 ......它将继续.... 后来j值初始为2,如果j值小于i,系统将循环....但是2大于1 ..为什么系统仍然可以生成结果?谁能告诉我为什么?
答案 0 :(得分:0)
由于1是一个特殊数字而且它不在素数之下,所以你必须在外循环内分别写1条件:
if(i == 1)
isPrimeNumber = false;
并将内圈从中转换为for (int j = 2; j < i; j++)
至for (int j = 2; j <= i/2 ; j++)