시간 제한메모리 제한제출정답맞힌 사람정답 비율
3 초 128 MB2791479952.660%

문제

소수 (Prime Number)란 $1$이 아니면서, $1$과 자기 자신 이외에 약수가 존재하지 않는 양의 정수를 의미합니다. 예를 들어, $2$, $3$, $5$, $7$ 등이 소수에 해당합니다. 함수 $f(n)$을 "$n$을 $0$개 이상의 소수의 합으로 표현하는 경우의 수"로 정의합시다. 이 때, 소수의 종류는 중복해서 사용할 수 있으며, 종류가 같고 순서만 다른 경우는 같은 경우로 봅니다. 예를 들어, $5$는 $2+3$ 또는 $5$로 나타낼 수 있으며, 다른 방법은 존재하지 않습니다. 따라서 $f(5)$는 $2$입니다.

정수 $n$이 주어질 때, $f(n)$의 값을 구하여 출력하세요. 단, 정답이 커질 수 있으니 정답을 $1 \, 000 \, 000 \, 007$로 나눈 나머지를 출력하세요.

입력

첫 번째 줄에 테스트 케이스의 개수 $T$ ($1 \le T \le 10\,000$)가 주어집니다.

두 번째 줄부터 $T+1$ 번째 줄까지 $i+1$ 번째 줄에 각각 정수 $n_i$ ($0 < n_i \le 100\,000$)가 주어집니다.

출력

각 테스트 케이스에 대해 정답을 각각 한 줄에 출력하세요. 단, 정답이 커질 수 있으니 정답을 $1\,000\,000\,007$로 나눈 나머지를 출력하세요.

예제 입력 1

6
1
2
5
7
10
20000

예제 출력 1

0
1
2
3
5
384444614

$5$에 대한 경우는 지문에 설명되어 있습니다.

$7$은 $2+2+3$, $2+5$, $7$로 나타낼 수 있습니다. 따라서 $f(7)$의 값은 $3$입니다.

$10$은 $2+2+2+2+2$, $2+2+3+3$, $2+3+5$, $3+7$, $5+5$로 나타낼 수 있습니다. 따라서 $f(10)$의 값은 $5$입니다.

$20\,000$을 소수의 합으로 나타내는 방법은 총 $297 \dots 038$가지 (총 $72$자리 수입니다. 가운데 $66$자리는 생략되었습니다.) 있습니다. 이를 $1 \, 000 \, 000 \, 007$로 나눈 나머지는 $384\,444\,614$입니다.

출처

Contest > BOJ User Contest > 흐즈로컵 > 제1회 흐즈로컵 E번

채점 및 기타 정보

  • 소스 코드의 크기는 20000B을 넘을 수 없다.