public class PrimeNumberTest {
public static void main(String[] args) {
boolean isFlag = true;// 最初的标识
int count = 0;// 计数器
for (int i = 2; i <= 100; i++) {// i作为被除数,j作为除数
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isFlag = false;
break;// 利用break进行了优化,一旦i整除j,将跳出当前的循环。
}
}
if (isFlag == true) {
System.out.print(i + "\t");// 质数的标识符为true
count++;// 统计个数
if (count % 10 == 0) {
System.out.println();
}
}
isFlag = true;// 进行下一轮循环时,要将isFlag重置,防止受合数的影响(isFlag变为了false)
} // 导致后面的质数输出不了。如果不重置,则输出的质数结果为2和3。
}
}
附件:如果对于输出的数据较大时,可以考虑如下的操作。
将上段代码的第二个for循环中的j<i改为j<Math.sqrt(i),运行效率将会大大提高。