线性筛选欧拉函数
来源:互联网 发布:温州网络学堂手机版 编辑:程序博客网 时间:2024/06/08 12:03
如果是求一个数字的欧拉函数,可以在时间复杂度为O(sqrt(n))求出。但是如果要求前n个数的欧拉函数,按照上述的思路,时间复杂度就是O(n*sqrt(n))。
因此采用一种线性时间的方法筛选欧拉函数值,完成打表。
本方法需要一下的几个性质:
(p为质数)
1.phi[p]=p-1,因为1-p中只有p与本身不互质。
2.如果i mod p = 0,则 phi[i*p] = p *phi[i] 。
3.如果i mod p != 0,则 phi[i*p] = (p-1) *phi[i] 。
下面给出欧拉函数的线性筛选代码:
#include <cstdio>#include <algorithm>#include <cstring>#define maxn 1000000+5 //1e6+5using namespace std;int phi[maxn];void get_phi(){ memset(phi,0,sizeof(phi)); phi[1] = 1; for(int i=2;i<=maxn;i++) { if(!phi[i]) for(int j=i;j<=maxn;j+=i) { if(!phi[j]) phi[j] = j; phi[j] = phi[j]/i*(i-1);//先除再乘 } }}
0 0
- 线性筛选欧拉函数
- 线性筛选素数和线性筛选欧拉函数【bzoj2190]
- 线性筛选素数(欧拉筛选)
- 欧拉函数筛选素数
- 线性筛选同时得到欧拉函数表和素数表
- 欧拉函数 素数筛选法模板
- HDU 1286(欧拉函数||筛选法)
- poj 2478 欧拉函数筛选
- 欧拉函数模板(判断,筛选)
- 素数筛选 欧拉筛选
- 欧拉函数线性筛法详解
- 欧拉函数 线性筛法
- 欧拉筛(线性筛)& 欧拉函数
- bzoj 2190 欧拉函数线性筛
- [笔记]: 欧拉函数线性筛法
- 线性筛素数and欧拉函数
- 线性筛法与欧拉函数
- 【欧拉函数+线性筛】bzoj2818: Gcd
- java的动态代理详解
- 列表选择框Spinner
- word笔记整理
- background first-child 选择器
- vpxuser口令变化
- 线性筛选欧拉函数
- 支持向量机_3: Kernel
- 项目MatchBox
- 搭建https服务--获取https证书(1)
- CentOS6.5下设置静态IP
- Mysqldump: Got error: 145错误
- 提升方法及AdaBoost
- java NIO非阻塞方式的Socket编程
- 均值、方差、协方差、协方差矩阵