에라토스테네스의 체
boolean[] isPrime = new boolean[n+1]; // 0 ~ 100
Arrays.fill(isPrime, true); // 일단 전부 소수라고 가정
isPrime[0] = isPrime[1] = false; // 0과 1은 소수 아님
for (int i = 2; i * i <= n; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= 100; j += i) {
isPrime[j] = false; // i의 배수들은 소수 아님
}
}
}
// 소수 출력
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
System.out.print(i + " ");
}
}
간단한 for문
public class PrimeNumbersSimple {
public static void main(String[] args) {
for (int i = 2; i <= 100; i++) {
if (isPrime(i)) {
System.out.print(i + " ");
}
}
}
private static boolean isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i <= Math.sqrt(n); i++) { // √n까지만 검사
if (n % i == 0) return false;
}
return true;
}
}