15번
시간 제한1초메모리 제한1024 MB
어떤 수가 c의 배수면 c로 나누고 아니면 c의 거듭제곱을 취하는 수열에서, a_m + a_{m+1} = c+1이 되는 모든 시작값 a_1의 합을 m = 1부터 M까지 각각 구해 1e9+7로 나눈 나머지를 출력한다.
문제
양의 정수의 무한한 수열 이 다음 조건을 만족한다. 는 고정된 양의 정수이고 이다.
임의의 양의 정수 에 대하여,
- 이 의 배수인 경우, 이다.
- 이 의 배수가 아닌 경우, 이다.
양의 정수 에 대하여, 이 성립하도록 하는 모든 양의 정수 의 합을 이라고 하자. 양의 정수 이 주어졌을 때, 의 값을 각각 구하여라. 단, 값이 매우 커질 수 있으므로 로 나눈 나머지를 출력한다.
입력
첫째 줄에 두 정수 이 공백을 사이에 두고 주어진다.
출력
개의 줄에 걸쳐 정답을 출력한다. 번째 줄에는 를 로 나눈 나머지를 하나의 음이 아닌 정수로 출력해야 한다. 은 소수이다.
제한
- 주어지는 모든 수는 정수이다.