백준 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)

Categories:

Updated: