만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

잘 알려진 합 구하기

시간 제한1초메모리 제한1024 MB

요약
N과 M이 10억 이하일 때, f(i)=N을 i로 나눈 몫, g(i)=i를 M으로 나눈 나머지라 하고 i=1부터 N까지 f(i)×g(i)의 합을 1,000,000,007로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 분할 정복, 구현
정답자
아직 제출이 없습니다

문제

함수 f(x)f(x)를 NN을 xx로 나눴을 때의 몫으로, g(x)g(x)를 xx를 MM으로 나눴을 때의 나머지로 정의하자.

다음 값을 1 000 000 0071\,000\,000\,007로 나눈 나머지를 구하라.

∑i=1Nf(i)×g(i)\sum_{i=1}^N f(i)×g(i)

입력

첫째 줄에 정수 NN과 MM이 공백을 사이에 두고 주어진다. (1≤N,M≤1091 \le N, M \le 10^9)

출력

주어진 수식의 값을 1 000 000 0071\,000\,000\,007로 나눈 나머지를 출력한다.

예제1

  1. 예제 1

    입력
    4 3
    
    예상 출력
    9