3050: 쉬운 분할 점수
[만든사람 : lukanel]
문제 설명
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