求i从1到n的gcd(n,i)的和

时间:2022-05-26 07:18:22

     刚才rihkddd神给我讲解的一个数论问题,为了防止以后忘记,写一下吧。

题目是让求i从1增加到n的gcd(n,i)的和,我们假设gcd(n,i) = k,则gcd(n/k,i/k) = 1。即假设gcd(n/k, x ) = 1,则gcd(n,x*k) = k。gcd(n,i) = k,k的取值是确定的,即n的所有因子,所以,满足gcd(n/k,x) = 1个x的个数乘以k即为所有满足gcd(n,i) = k 的和。因此就转化为n/k的欧拉函数的值乘以k的所有的和。

举个例子12来说,12的因子为1,2,3,4,6,12,则和为12/1的欧拉函数值*1 + 12/2的欧拉函数值 * 2 + 12/3的欧拉函数值 * 3 + 12/4的欧拉函数值 * 4 + 12/6的欧拉函数值*6 + 12/12 的欧拉函数值 * 12。

至于一个数n的所有因子,可以先将n分解成素数幂的形式,然后再用排列组合的知识或者是深搜求出其所有因子。

orz  rihkddd神。。。。。。。。