ps | |
---|---|
링크 | acmicpc.net/… |
출처 | BOJ |
문제 번호 | 1644 |
문제명 | 소수의 연속합 |
레벨 | 골드 3 |
분류 |
소수목록, 투 포인터 |
시간복잡도 | O(nloglogn) |
인풋사이즈 | n<=4,000,000 |
사용한 언어 | Python |
제출기록 | 56036KB / 264ms |
최고기록 | 264ms |
해결날짜 | 2021/08/04 |
"""Solution code for "BOJ 1644. 소수의 연속합".
- Problem link: https://www.acmicpc.net/problem/1644
- Solution link: http://www.teferi.net/ps/problems/boj/1644
Tags: [Sieve] [TwoPointer]
"""
from teflib import numtheory
def main():
N = int(input())
primes = numtheory.prime_list(N)
left_iter, right_iter = iter(primes), iter(primes)
prime_sum = answer = 0
while True:
try:
if prime_sum == N:
answer += 1
if prime_sum <= N:
prime_sum += next(right_iter)
else:
prime_sum -= next(left_iter)
except StopIteration:
break
print(answer)
if __name__ == '__main__':
main()