求 [1,n-1]中 与 n 的 GCD 值的和
来源:互联网 发布:davinci软件 编辑:程序博客网 时间:2024/06/05 16:35
如何求
因为
现在来考虑这样一个问题,我们将
代码如下:
void Get_phi()///筛法求欧拉函数{ cnt = 0; memset(flag, true, sizeof(flag)); phi[1] = 1; for(int i=2; i<MAXN; i++)///线性筛法 { if(flag[i])///素数 { p[cnt++] = i; phi[i] = i-1;///素数的欧拉函数值是素数 - 1 } for(int j=0; j<cnt; j++) { if(i*p[j] > MAXN) break; flag[i*p[j]] = false;///素数的倍数,所以i*p[j]不是素数 if(i%p[j] == 0)///性质:i mod p == 0, 那么 phi(i * p) == p * phi(i) { phi[i*p[j]] = p[j] * phi[i]; break; } else phi[i*p[j]] = (p[j]-1) * phi[i];///i mod p != 0, 那么 phi(i * p) == phi(i) * (p-1) } } //求 ans[i] 的值 int tmp = sqrt(MAXN)+1; for(int i=2; i<MAXN; i++) ans[i] = phi[i]; for(int i=2; i<=tmp; i++){ ans[i*i] += i*phi[i]; for(int j=i*(i+1), k=i+1; j<MAXN; j+=i, k++) ans[j] += i*phi[k] + k*phi[i]; }}
阅读全文
0 0
- 求 [1,n-1]中 与 n 的 GCD 值的和
- 求gcd(1,n)+...+gcd(n,n)的和f(n)
- 求i从1到n的gcd(n,i)的和
- 关于“求[1,n]中与n互质的数的和”的讨论
- 求1到n中与n互质的和(数论)
- 求1~n的和
- (hdu step 7.2.2)GCD Again(欧拉函数的简单应用——求[1,n)中与n不互质的元素的个数)
- hdu3501 给出一个N,求1..N中与N互质的数的和
- 51 nod 最大公约数之和 (求1~n里面各个数的gcd和 n<=1000000)
- 求1+....+n的值
- 求1--r中与n互素数的个数
- 求两个或N个数的最大公约数(gcd)和…
- 求方差时除以n和n-1的区别
- 求1到n的n次方和
- E 求1-n与n的最大公约数大于m的和
- 求1+1/n的累加和
- 二分法 求1到N的和
- 求1到n的和
- 2017.6.27 python学习 面向对象编程
- linux gdb
- 6.27-6.28 JLL--实习日志Tips for Horizon+ retail_interface
- hbuilder安卓生成 证书以及打包
- quick-coos2d-3.3中定时器/帧事件
- 求 [1,n-1]中 与 n 的 GCD 值的和
- mui
- Android JNI编程之基础学习(一) 认识c语言的基本类型,输出输入函数
- C++学习笔记(二)
- SpringMVC实战(一) —— HelloWorld
- httpclient 传递参数的问题
- canvas实现雨滴效果
- 交换两变量的值
- 人脸检测之MTCNN训练自己的数据