에라토스테네스의 체 - (소수 구하기)

소수를 구하는 알고리즘 중에 가장 유명한 Algorithm

아리스토텔레스 형의 친구 에라토스테네스의 체이다.

 

바로 본론으로 들어가서 소스코드 함 봐보자.

그냥 평범하게 2중 for문을 통해 구할 수도 있지만, 구해야 하는 소수의 자릿수가 커지면 시간초과가 떠버릴 것이다.

그래서 간단한 if문을 더해주어 2중 for문이지만, O(N)과 같은 시간복잡도를 낼 수 있다리.

이거는 수학자들에 의해 이미 증명된 공식을 사용한 것인데.

소수는 n의 배수가 아니어야 한다.

입력받은 수를 입력받은 수보다 작은 수 들로 나누어서 떨어지면 소수가 아니다.

그러나 모두 나누어볼 필요없이, 루트 n 까지만 나누어서 떨어지면 소수가 아니다.

 

이 소스코드는 1000 이하의 소수를 구하는 놈이다리.

소스 코드

 

 

+ Recent posts