백준 1644 - 소수의 연속합 (파이썬)
Updated:
Answer
left = 0
right = 0
total = 0
answer = 0
n = int(input())
a = [False, False] + [True] * (n - 1)
primes=[]
for i in range(2, n + 1):
if a[i]:
primes.append(i)
for j in range(2 * i, n + 1, i):
a[j] = False
len_primes = len(primes)
while True:
if total >= n:
if total == n:
answer += 1
total -= primes[left]
left += 1
elif right == len_primes:
break
else:
total += primes[right]
right += 1
print(answer)