문제3050--쉬운 분할 점수

3050: 쉬운 분할 점수

[만든사람 : lukanel]
시간제한 : 1.000 sec  메모리제한 : 128 MiB

문제 설명

k>1 인 자연수를 a+b=k인 두 자연수 a,b로 분할하면

$$ a^2+b^2 $$

만큼의 ‘분할 점수’ 를 얻는다고 정의하자. 분할된 두 수 a,b는 각각 1보다 크다면 계속해서 분할할 수 있다.
자연수 N이 주어졌을 때, 분할된 모든 수가 1이 될 때까지 분할을 반복해 얻는 ‘분할 점수’의 합이 최대가 되도록 하려고 한다. 이 값을 f(N) 이라고 정의하자.

이번에는 규칙을 추가해, k>2인 자연수에 대해서는 a와 b 중 하나 이상이 소수가 되도록 분할해야 한다고 하자. 이때의 ‘분할 점수’의 합의 최댓값을 g(N) 이라고 정의하자.
f(N)+g(N)의 값을 구하여라. 단, 값이 너무 커질 수 있으니 1000000007로 나눈 나머지를 출력한다.



입력 설명

첫째 줄에 자연수 N이 주어진다. (N≤1000000)

출력 설명

f(N)+g(N)의 값을 1000000007로 나눈 나머지를 출력한다.

입력 예시 Copy

6

출력 예시 Copy

108 

게시판

작성자제목(댓글)
글이 없습니다.

출처/분류