▶ 예시
public static void Prime(int num) {
if(num < 2) // 0과 1은 소수가 아님
return;
else if (num == 2) { // 2는 소수
System.out.println(num);
return;
}
for(int i = 2; i < num; i++) {
if(num % i == 0) // 소수가 아닐 경우
return;
}
// 위 반복문에서 약수를 갖고 있지 않는 경우 소수
System.out.println(num);
return;
}
▶ 예시
public static void Prime(int num) {
if(num < 2) // 0과 1은 소수가 아님
return;
else if(num == 2) { // 2는 소수
System.out.print(num);
return;
}
for(int i = 2; i <= Math.sqrt(num); i++) {
if(num % i == 0) // 소수가 아닐 경우
return;
}
// 위 반복문에서 약수를 갖고 있지 않는 경우 소수
System.out.print(num);
return;
}
▶ 예시
public class sifter {
public static boolean[] prime; // 소수를 체크할 배열
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
Prime(N);
for(int i = 0; i < prime.length; i++) {
if(prime[i] == false) { // 소수(false)일 경우 출력
System.out.println(i);
}
}
}
// N 이하 소수 생성 메소드
// 소수면 false, 소수가 아니면 true
public static void Prime(int N) {
prime = new boolean[N+1]; // 0 ~ N
prime[0] = prime[1] = true; // 숫자 0과 1은 소수가 아님
if(N < 2) // N이 1 이하일 경우
return;
// √N(제곱근) 이하까지 반복
for(int i = 2; i <= Math.sqrt(N); i++) {
if(prime[i] == true) // 이미 한번 체크된 배열이면 continue
continue;
// i의 배수라면 소수가 아니므로 true
for(int j = i * i; j < prime.length; j = j+i) {
prime[j] = true;
}
}
}
}