λ¬Έμ
λ°±μ€ μ¨λΌμΈ μ μ§ - 1644λ²
νμ΄ κ³Όμ
N
μ΄ μ£Όμ΄μ§ λ μ°μλ μμμ ν©μΌλ‘ N
μ λ§μ‘±μν¬ μ μλ κ²½μ°μ μλ₯Ό μ°Ύλ λ¬Έμ μ
λλ€.
νΉμ μλ€μ ν©μ΄ N
μ΄ λκΈ° μν΄μλ ν΄λΉ μλ€μ΄ N
λ³΄λ€ μμμΌ ν¨μ μλͺ
ν©λλ€.
λ°λΌμ N
λ³΄λ€ μκ±°λ κ°μ μλ€ μ€ λͺ¨λ μμλ₯Ό μλΌν μ€ν
λ€μ€μ 체
λ₯Ό μ΄μ©ν΄ λ¨Όμ ꡬν΄λμ λ€μ μ°μλ ꡬκ°μ μ°ΎμΌλ©΄ λ©λλ€.N
μ μ΅λ κ°μ΄ ν¬κΈ° λλ¬Έμ O(N^2)
μΌλ‘ λͺ¨λ ν©μ κ²½μ°μ μλ₯Ό λ°μ§λ©΄ μκ° μ΄κ³Όκ° λ°μν©λλ€.
μ½λ
N = int(input())
def eratos(n):
sieve = [1] * (n + 1)
for i in range(2, int(n ** 0.5) + 1):
if sieve[i]:
for j in range(i * 2, n + 1, i):
sieve[j] = 0
return [i for i in range(2, n + 1) if sieve[i]]
def solution():
primes = eratos(N)
if not primes:
return 0
answer = 0
head, tail = 0, 0
acc = primes[0]
while head <= tail:
if acc < N:
tail += 1
if tail < len(primes):
acc += primes[tail]
else:
break
else:
if acc == N:
answer += 1
acc -= primes[head]
head += 1
return answer
print(solution())
λ°μν
'π algorithm > boj' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
BOJ 20055 - μ»¨λ² μ΄μ΄ λ²¨νΈ μμ λ‘λ΄ (0) | 2021.03.08 |
---|---|
BOJ 20044 - Project Teams (0) | 2021.03.08 |
BOJ 18242 - λ€λͺ¨λ€λͺ¨ μλ ₯κ²μ¬ (0) | 2021.03.08 |
BOJ 9184 - μ λλ ν¨μ μ€ν (0) | 2021.03.08 |
BOJ 14226 - μ΄λͺ¨ν°μ½ (0) | 2021.03.08 |
π¬ λκΈ