求gcd(1,n)+...+gcd(n,n)的和f(n)
来源:互联网 发布:数据库系统组成 编辑:程序博客网 时间:2024/05/16 15:21
首先我们很容易知道 当p是质数的时候 , f(p)=2*p-1,因为1到p-1都与p互质,而p和它本身的最大公约数是p。
我们知道任何数可以转化成质数的幂的乘积。
那么我们首先求只有一种质数的情况:f(p^k)。
考虑f(p^2)=2*p^2-1 + p*(p-1) -(p-1) : 先假设所有小于的p^2的数都与它互质,那么结果是2*p^2-1,而其实有p-1个数是p的倍数 并且他们 与 p^2的最大公约数是p,然后最后再减去第一部分多加的p-1个1。最后 f(p^2)= p*(3p-2)
考虑f(p^3)=2*p^3-1 + p*(p^2-p)+p^2*(p-1) -(p^2-1) : 先假设所有小于的p^3的数都与它互质,那么结果是2*p^3-1,而其实有p^2-p个数是p的倍数(不包括是p^2倍数的),并且他们 与 p^3的最大公约数是p;还有p-1个数是p^2的倍数(不包括p^3倍数的,也就是不包括它自己) 并且他们 与 p^3的最大公约数是p^2,然后最后再减去第一部分多加的p^2-1个1。最后 f(p^3)= p*(4p-3)
....
同理,我们得到f(p^k)=p*( (k+1)*p- k).
那么如果有多种质数的乘积呢?
考虑最简单的情况,f(p*q) ,p、q都是质数
根据上面的想法,同理得 f(p*q)=2*(p*q)-1 + p*(q-1)+q*(p-1) - (p-1+q-1) = (2p-1)(2q-1)=f(p)*f(q)。
由此,我们大胆假设,幂大于1的时候,也适用同样的公式,在此就不多加证明了。
现在如何求解已经显而易见了。
0 0
- 求gcd(1,n)+...+gcd(n,n)的和f(n)
- 求 [1,n-1]中 与 n 的 GCD 值的和
- 求i从1到n的gcd(n,i)的和
- 求两个或N个数的最大公约数(gcd)和…
- Fib 性质 Gcd(f[n],f[m]) = f(gcd(n,m))
- 51 nod 最大公约数之和 (求1~n里面各个数的gcd和 n<=1000000)
- HDU 2582 f(n) (组合数的gcd)
- 对于求n个数的gcd的想法
- 【ZOJ】4846 GCD Reduce(求n个数的最大公约数)
- %lf\n和%f\n的区别
- CF582A给出n个数的相互GCD,求这n个数,map的使用
- 关于f(n) = f(n-1)*n f(1)=1 求f(100)的值的问题
- 求f(x,n)
- 【UVA 11426】 【求sum(gcd(i,j),1<=i<j<=n)1<n<4000001】
- codeforces 251E: Devu and Birthday Celebration(求把这个n分成f块,切这f块的gcd为1有多少种方法)
- 定义Fibonacci数列如下: / 0 n=0 f(n)= 1 n=1 \ f(n-1)+f(n-2) n=2 输入n,用最快的方法求该数列的第n项。
- 求两个或N个数的最大公约数(gcd)和最小公倍数(lcm)的较优算法
- 求两个或N个数的最大公约数(gcd)和最小公倍数(lcm)的较优算法
- linux chown命令
- Android学习笔记_20140602
- ZOJ 2744 Palindromes
- 编写高质量代码——重载operator=的标准三步走
- 数据挖掘 关联规则算法
- 求gcd(1,n)+...+gcd(n,n)的和f(n)
- linux 剪切命令 mv
- matlab conv2 函数
- Gridview(一)
- 9个方法,教你用Google Drive做好云端档案管理
- java线程swingworker的运用
- 关于Kubuntu与ubuntu的搜狗输入法的安装问题
- 小胖吃肉
- 不懂技术的人不要对懂技术的人说这很容易实现