http://acmicpc.net/problem/4948
{코드}
sieve = [1]*246913
sieve[0] = 0
sieve[1] = 0
for i in range(2, 246913):
if sieve[i]:
for j in range(i+i, 246913, i):
sieve[j] = 0
while True:
n = int(input())
if n == 0:
break
print(sum(sieve[n+1:n*2+1]))
{설명}
어떤 범위 안의 소수의 개수는 체에서 해당 범위의 1의 개수와 같고 이는 결국 해당 범위의 합과 같습니다.
'알고리즘 공부 > BOJ백준 풀이' 카테고리의 다른 글
[백준 1085번-파이썬/Python] 직사각형에서 탈출 (0) | 2020.12.17 |
---|---|
[백준 9020번-파이썬/Python] 골드바흐의 추측 (0) | 2020.12.17 |
[백준 1929번-파이썬/Python] 소수 구하기 (0) | 2020.12.17 |
[백준 2581번-파이썬/Python] 소수 (0) | 2020.12.17 |
[백준 1978번-파이썬/Python] 소수 찾기 (0) | 2020.12.17 |