http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=295737
F(N)=∑gcd(i,n)=∑d|Nd∗φ(N/d)F(pk)=∑i=0kpi∗φ(pk−i)=k∗(pk−pk−1)+pk
#include<cstdio>
#include<iostream>
using namespace std;
typedef long long LL;
int main(){
LL n;
while(scanf("%lld",&n)!=EOF){
LL ans=1;
for(LL i=2;i*i<=n;i++){
if(n%i==0){
int cnt=0;
LL bns=1;
while(n%i==0){
n/=i;cnt++;
bns*=i;
}
ans*=(bns-bns/i)*cnt+bns;
}
}
if(n!=1){
ans*=n-1+n;
}
printf("%lld\n",ans);
}
return 0;
}