소수 판별 알고리즘 에라토스테네스의 체

eomprgrm·2023년 4월 14일
0

1. 문제 유형


  • 특정 범위의 수가 주어지고 그 범위 내의 모든 소수를 찾아야 하는 경우.
  • ex) 자연수 N이 입력되면 1부터 N까지 소수의 개수를 출력하는 프로그램을 작성하시오.

2. 문제 접근


  • 이중 for문으로 답을 찾아내는 것은 시간복잡도가 O(N^2)이며 비효율적이다.
  • 에라토스테네스의 체 알고리즘을 사용하여 풀어내는 것이 효율적이다. 시간복잡도 O(N log log N)

3. 에라토스테네스의 체


고대 그리스의 수학자 에라토스테네스가 만들어 낸 소수를 찾는 방법. 이 방법은 마치 체로 치듯이 수를 걸러낸다고 하여 '에라토스테네스의 체'라고 부른다.

4. 방법


임의의 자연수 n에 대해 그 이하의 소수를 찾는다고 가정한다. (n은 100)

  • 1부터 100까지 숫자를 나열한다.
  • 1은 소수가 아니므로 제외시킨다.
  • 숫자 2부터 시작하며 2의 배수를 모두 제거한다.
  • 같은 방식으로 3부터 시작한다.
  • 4는 2의 배수를 진행할 때 제거되었음으로 넘어간다.
  • 위의 과정을 반복

5. 코드 (Java)


profile
성실하고 둥글게 살고자 하는 개발자입니다.

0개의 댓글