欧拉函数
2016-06-01 08:29
375 查看
#include"string" #include"sstream" #include"iostream" #include"stack" using namespace std; const int maxn=100000; int minDiv[maxn],phi[maxn],sum[maxn]; int n; void genPhi() { for(int i=1;i<maxn;++i) minDiv[i]=i; for(int i=2;i*i<maxn;++i) if(minDiv[i]==i) for(int j=i*i;j<maxn;j+=i) minDiv[j]=i; phi[1]=1; for(int i=2;i<maxn;++i) { phi[i]=phi[i/minDiv[i]]; if((i/minDiv[i])%minDiv[i]==0) phi[i]*=minDiv[i]; else phi[i]*=minDiv[i]-1; } } int main() { genPhi(); while(cin>>n) { cout<<phi <<endl; } return 0; }
相关文章推荐
- 游戏编程中的人工智能技术-遗传算法入门(四)
- 1.Spark内核执行流程
- oracle11g在Server08R2服务器上安装部署常见问题
- 函数this
- [iOS]Core Data浅析(二)
- CC2530发射功率及其设置 zstack修改发射功率
- 一个最基本的CSS文件处理
- 使用PHP程序开发高效的WEB网络系统
- SpringMVC从入门到精通
- Spring 系列: Spring 框架简介(转载)
- 【MongoDB】Mongodb集群搭建的三种方式
- 存储系统测试工具学习之vdbench
- 2016-06-01 07:51
- STM32系列单片机命名规则
- Mybatis插入MySQL数据库中文乱码
- 通过Android源码分析再探观察者模式(二)
- Mybatis插入MySQL数据库中文乱码
- 深入理解JS异步编程二(分布式事件)
- LeetCode 053 Maximum Subarray
- Net操作配置文件(Web.config|App.config)通用类