‡ CODING TEST STUDY ‡
[Java] 소수 판별 - 에라토스테네스의 채
Trudy | 송연
2024. 5. 18. 13:34
에라토스테네스의 채
- 채로 치듯이 수를 걸러내서 소수를 찾는 방법
- n이하의 소수를 모두 찾고 싶다면 1부터 n까지 쭉 나열한 다음에 2의 배수, 3의 배수, 5의 배수...로 계속해서 나누는 것
- 일종의 노가다 방식이긴 하지만, 소수를 생성하는 공식이 나오지 않았으므로 가장 빠른 방법
- 제곱근까지만 나눠주면 된다 (밑에 코드 참고)
소수 판별 코드
public static boolean isPrime(int n) {
if (n < 2) {
return false;
}
// 에라토스테네스 체
for (int i = 2; i <= (int) Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
참고
에라토스테네스의 체
Sieve of Eratosthenes 고대 그리스의 수학자 에라토스테네스 가 만들어 낸 소수 를 찾는 방법.
namu.wiki