题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2705
分析:
设k为n的因数
设f[k]为gcd(x,n)==k的x的个数,容易知道ans=∑f[k]*k
那么接下里就是如何求f[k]的问题了
∵gcd(x,n)=k
∴gcd(x/k,n/k)=1
也就是说要在n/k以内找到与n/k互质的数的个数,明显就是欧拉函数,所以f[k]=φ(n/k)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2705
分析:
设k为n的因数
设f[k]为gcd(x,n)==k的x的个数,容易知道ans=∑f[k]*k
那么接下里就是如何求f[k]的问题了
∵gcd(x,n)=k
∴gcd(x/k,n/k)=1
也就是说要在n/k以内找到与n/k互质的数的个数,明显就是欧拉函数,所以f[k]=φ(n/k)