Möbius Madness

시간 제한2.5초메모리 제한512 MB

요약
1부터 N까지의 d에 대해 mu(L·d)와 floor(N/d)^K의 곱을 모두 더한 값을 10^9+7로 나눈 나머지를 구한다. N이 최대 10^9, L이 최대 10^15라서 L을 소인수별로 쪼개고 floor(N/d)가 같은 구간을 묶어 계산해야 한다.
난이도

어려움10점 중 9점

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

문제

Möbius 함수 μ(n)\mu(n)은 정수론에서 다루는 중요한 multiplicative function 중 하나다.

  • μ(n)\mu(n)의 값은 양의 정수 nn에 대하여 다음과 같이 정의된다. 
  • nn이 제곱 인수가 없는 양의 정수고, kk개의 소인수를 가진다면, μ(n)=(−1)k\mu(n)=(-1)^k이다. 특히, μ(1)=1\mu(1)=1이다.
  • nn이 제곱 인수가 없는 양의 정수가 아니라면, μ(n)=0\mu(n)=0이다. 

주어진 양의 정수 N,L,KN, L, K에 대하여, 다음 값을 계산해보자. 값이 커지므로, 109+710^9+7로 나눈 나머지를 출력한다. 

\begin{equation*}
\displaystyle \sum_{d=1}^N \mu(L \cdot d) \left \lfloor \frac{N}{d} \right \rfloor^K
\end{equation*}

입력

입력은 한 줄에 주어지며, 양의 정수 NN, LL, KK가 순서대로 주어진다.

입력은 1≤N≤1091 \le N \le 10^9, 1≤L≤10151 \le L \le 10^{15}, 1≤K≤1091 \le K \le 10^9를 만족한다.

출력

∑_d=1Nμ(L⋅d)⌊Nd⌋K\displaystyle \sum\_{d=1}^N \mu(L \cdot d) \left \lfloor \frac{N}{d} \right \rfloor^K의 값을 109+710^9+7로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

    입력
    100 1 1
    예상 출력
    1
  2. 예제 2

    입력
    100 30 10
    예상 출력
    44609703
  3. 예제 3

    입력
    100 4 100
    예상 출력
    0