소수 알고리즘 - 제곱근 & 에라토스테네스의 체 이용
소수는 1과 자기 자신으로만 나누어는 수이다. 예로 100을 들어보자. 100은 1, 2, 4, 5, 10, 20, 25, 50, 100 으로 나누어질 수 있다. 100의 제곱근 10을 기준으로 대칭이 되는 것을 확인할 수 있다. 1 * 100 / 2 * 50 / 4 * 25 / 5 * 20 여기서, 1은 모든 수의 약수이므로 제외하고, 제곱근 이전의 수들은 제곱근 이후의 수들과 대칭되므로 나눠지는 수들을 모두 체크할 필요없이, 제곱근 이전의 수들로만 체크해보면 된다. 결론은, 2부터 제곱근까지 나누어봤을 때, 나눌 수 있는 수가 단 1개도 존재하지 않으면 그 수는 소수이다. 예시로, 인자로 들어간 수가 소수인지 판별하는 메서드를 구현해보았다. 이렇게 제곱근을 이용하면, 모든 수를 둘러보지 않아도 되는 ..
2022. 10. 23.