문제.
풀이.
에라토스테네스의 체를 이용하여 소수를 구하고 부분합 을 이용하여 소스코드를 작성하면 된다.
https://turret1234.tistory.com/141
소스코드.
import sys
# 에라토스 테네스의 체
def prime_number(n):
numbers = [True for i in range(n)]
m = int(n ** 0.5)
for i in range(2, m+1):
if numbers[i]:
for j in range(i+i, n, i):
numbers[j] = False
return [i for i in range(2, n) if numbers[i] == True]
input = sys.stdin.readline
n = int(input())
prime= prime_number(n+1)
start, end , result = 0, 1, 0
while end <= len(prime):
temp = sum(prime[start:end])
if temp == n:
result += 1
end +=1
if temp < n:
end += 1
else:
start += 1
print(result)
'프로그래밍 > 백준' 카테고리의 다른 글
백준 14002 가장 긴 증가하는 부분 수열 4 - 파이썬 (0) | 2021.08.02 |
---|---|
백준 12852 1로 만들기 2 - 파이썬 (0) | 2021.08.02 |
백준 11066 파일 합치기 - 파이썬 (0) | 2021.07.29 |
백준 9370 미확인 도착지 - 파이썬 (0) | 2021.07.29 |
백준 15654 N과 M(5) - 파이썬 (0) | 2021.07.29 |