- 에라토스테네스 체 : 소수를 찾는 방법
- 숫자들을 배열해 놓고 배수가 되는 수들을 지워나가는 방법이 마치 체로 걸러내는 것 같다고 하여 에라토스테네스 체 라고 불린다
- 문제풀이에서는 소수인지 아닌지 체크하는 체크리스트 배열 하나를 만들어서 진행한다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import sys
sys.stdin = open("input", "rt")
n = int(input())
check_ls = [0]*(n+1) //소수인지 아닌지 판별하기 위한 체크리스트 배열
cnt = 0
for i in range(2, n+1):
if check_ls[i] == 0: //0이라면 소수이므로 통과해서
cnt += 1 //cnt를 올려주고
for j in range(i, n+1, i): //그 소수의 배수에 해당하는 수들을
check_ls[j]=1 //체크리스트에서 1로 변경해준다
print(cnt)
|
cs |
728x90
'Data Structures & Algorithms' 카테고리의 다른 글
[Algorithms] Basic-두 리스트 합치기 (0) | 2022.05.13 |
---|---|
[Algorithms] Basic-뒤집은 소수 (0) | 2022.05.12 |
[Algorithms] Basic-정다면체 문제 (0) | 2022.05.12 |
[Algorithms] Basic-대표값 찾기 (0) | 2022.05.12 |
[Data Structures] 그래프 (Graph) (0) | 2022.05.10 |