for (int n = 2; n <= 100; n++){ boolean pan = true; for (int k = 2; k < Math.sqrt(n); k++){ if (n % k == 0) { pan = false; break; } } if (pan){ System.out.println(n); } }
int a, b; for (a = 2; a <= 100; a++) { for (b = 2; b <= Math.sqrt(a); b++) { if (a % b == 0) break; } if (b > Math.sqrt(a)) System.out.println(a);
在这两种方法均采用埃拉托斯特尼筛法(Sieve of Eratosthenes)经行筛选,如果一个数不是质数,那么它至少有一个小于或等于它平方根的因子,这样可以减少检查次数。