정수론과 응용: 레시테이션

n은 최대 10^9, v는 최대 100일 때 1부터 n까지 i와 1부터 v까지 u에 대한 요르단 함수 phi(i,u)의 합을 10^9+7로 나눈 나머지를 구한다.

어려움8정수론수학아직 제출이 없습니다시간 제한4초메모리 제한512 MB

문제

정수론과 응용 조교를 맡게 된 청응이는 바뻐 레시테이션 문제를 준비할 여를이 없었다. 수강생들이 이번 주 수업 때 오일러 피 함수(Euler's totient function, φ\varphi)를 배운 것을 알고 어떤 nn을 주면 φ(n)\varphi(n)을 구하라는 문제를 많이 내는 것으로 넘어가려고 했다.

\begin{equation*}
\varphi(n)=\left|\left\{k\in\mathbb{N}\::\:k\leq n,\:\gcd(k,n)=1\right\}\right|
\end{equation*}

그러나 이 문제는 소인수분해만 하면 구하는 공식이 너무 잘 알려져 있어 레시테이션 시간을 전부 넘기지 못한다는 것을 깨달았다. 그래서 오일러 피 함수를 일반화한 요르단 함수(Jordan's totient function)를 구하라는 문제를 준비했다.

\begin{equation*}
\varphi(n,v)=\left|\left\{(k_1,k_2,\cdots,k_v)\in\mathbb{N}^v\::\:\forall i,\:k_i\leq n,\:\gcd(k_1,k_2,\cdots,k_v,n)=1\right\}\right|
\end{equation*}

그러나 이 문제도 너무 쉽게 풀릴 것이라는 고민에 빠졌다. 그래서 더 어려운 문제를 생각하던 도중 가우스와 관련된 유명한 일화가 생각났다.

"가우스가 어렸을 때, 가우스의 지도 교사였던 뷔트너 선생님이 11부터 100100까지 수들의 합을 구하라고 했고, 가우스는 제일 빠르게 50505050이라는 답을 냈다."

이에 영감을 받아 _i=1n_u=1vφ(i,u)\sum\limits\_{i=1}^n\sum\limits\_{u=1}^{v}\varphi(i,u)를 구하라고 문제를 냈다. 이제 이 문제를 푸는 것은 여러분 몫이다. nnvv가 주어지면 _i=1n_u=1vφ(i,u)\sum\limits\_{i=1}^n\sum\limits\_{u=1}^{v}\varphi(i,u)를 구하는 프로그램을 작성하시오.

입력

입력은 한 줄만 주어지며 두 자연수 nnvv가 주어진다. 입력은 1n1091\leq n\leq 10^9와 1v1021\leq v\leq 10^2을 만족한다.

출력

_i=1n_u=1vφ(i,u)\sum\limits\_{i=1}^n\sum\limits\_{u=1}^{v}\varphi(i,u)를 출력한다. 답이 몹시 커질 수 있으니 109+710^9+7로 나눈 나머지를 출력하라.