소수의 합

NYPC 2019 · 본선

소수란 약수가 11과 자기 자신 밖에 없는 22 이상의 자연수를 말한다. 예를 들어, 22, 33, 55, 9797과 같은 수들은 소수이고, 11, 66, 1818, 5555와 같은 수 들은 소수가 아니다.

22 이상의 자연수 NN이 주어졌을 때, NN을 한 개 이상의 소수들의 합으로 나타내는 방법의 수를 구하여라. 여기서 덧셈의 순서만 다른 경우는 모두 한 가지로 센다.

예를 들면, 7=2+2+3=2+5=77 = 2 + 2 + 3 = 2 + 5 = 7 이므로 N=7N = 7 일 때의 답은 33이다. 여기서, 77은 소수이므로 "77" 자체도 77을 소수의 합으로 표현하는 올바른 방법이다. "2+52 + 5"와 "5+25 + 2" 같은 경우에는 덧셈의 순서만 다른 경우이므로 한 가지로 센다.

입력 형식

첫째 줄에 정수 NN이 주어진다. (2N200002 \le N \le 20\,000)

출력 형식

NN을 한 개 이상의 소수들의 합으로 나타나는 방법의 수를 첫째 줄에 출력하여라. 단, 답이 매우 클 수 있으므로 10000000071\,000\,000\,007 (=109+7=10^9+7)로 나눈 나머지를 출력한다.

예제

입력

7

출력

3

채점 방식

입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞추어야 그 종류에 배정된 점수를 받을 수 있다.

종류 1: 13

N20N \le 20

종류 2: 31

N2000N \le 2\,000

종류 3: 56

별다른 제약조건 없음.

해설