n \prod_{i = 1}^{k} \frac{b_i p_i - b_i + p_i}{p_i}
时间复杂度为 \mathcal O(\sqrt{n}),代码:
#include<cstdio>
long long n;
long long f(){
long long ans=n; long long i;
for(i=2;i*i<=n;++i) if(n%i==0){
int b=0;
while(n%i==0) ++b,n/=i;
ans/=i;
ans*=b*i-b+i;
} if(n>1) ans/=n, ans*=n+n-1;
return ans;
}
int main(){
scanf("%lld",&n);
printf("%lld",f());
return 0;
}