欧拉函数
来源:互联网 发布:python爬取天气数据 编辑:程序博客网 时间:2024/05/16 17:51
线性筛O(n)时间复杂度内筛出maxn内欧拉函数值
类似于欧拉筛法,详情参见欧拉函数
#include<iostream>#include<cstdio>using namespace std;const int maxn=1e5;int n,m[maxn+1],pri[maxn+1],phi[maxn+1];//m[i]是i的最小素因数,p是素数,pt是素数个数int euler(){ int cnt=0; phi[1]=1; for(int i=2;i<=maxn;i++) { if(!m[i]) { pri[++cnt]=m[i]=i; phi[i]=i-1; } for(int j=1;j<=cnt&&pri[j]*i<=maxn;j++) { m[i*pri[j]]=pri[j]; if(m[i]==pri[j])//为了保证以后的数不被再筛,要break(参见欧拉筛法) { phi[i*pri[j]]=phi[i]*pri[j]; //这里的phi[k]与phi[i]后面的∏(p[i]-1)/p[i]都一样(m[i]==p[j])只差一个p[j],就可以保证∏(p[i]-1)/p[i]前面也一样了 break; } else//积性函数 phi[i*pri[j]]=phi[i]*phi[pri[j]]; } }}int main(){ euler(); scanf("%d",&n); printf("%d\n",phi[n]); return 0;}
0 0
- 欧拉函数
- 欧拉函数
- Relatives 【欧拉函数】
- 欧拉函数
- POJ_2407_欧拉函数
- 欧拉函数
- hdu_3501_欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数
- 欧拉函数应用
- 欧拉函数
- 欧拉函数
- 欧拉函数
- ACM-欧拉函数
- iOS8自定义Collection View Cell - Swift教程
- 连续签到奖励 数据库如何设计?
- 设计模式:单例模式
- Oracle数据库-建库、建表空间,建用户
- Mac下关于百度开发者中心认领应用
- 欧拉函数
- html5 video标签自定义控制条
- 控制台天涯看小说
- iOS 高级工程师是怎么进阶的(补充版20+点)
- 在CentOS 上安装EPEL源
- 查找两个字符串a,b中的最长公共子串
- CSS深入理解之relative
- GUN regex正则表达式的使用
- Ubuntu 中设置默认应用程序