spoj ETF
2016-02-18 10:06
204 查看
题目链接:http://www.spoj.com/problems/ETF/
题目大意:T组数据(T<=20000),每组数据给一个n(1<=n<=1e6)要求输出n的欧拉函数的值。
题目分析:筛法求phi即可
题目大意:T组数据(T<=20000),每组数据给一个n(1<=n<=1e6)要求输出n的欧拉函数的值。
题目分析:筛法求phi即可
#include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> using namespace std; int phi[1100000],prim[1100000],primm=0; bool mark[1100000]; void getphi() { phi[1]=1; for(int i=2;i<=1000000;i++) { if(!mark[i]) { phi[i]=i-1; prim[++primm]=i; } for(int j=1;j<=primm;j++) { int x=prim[j]; if(i*x>1000000)break; mark[i*x]=1; if(i%x==0) { phi[i*x]=phi[i]*x; break; } else phi[i*x]=phi[i]*phi[x]; } } } int main() { int T; cin>>T; getphi(); while (T--) { int n; scanf("%d",&n); printf("%d\n",phi ); } return 0; }
相关文章推荐
- oracle如何 查询 创建 执行存储过程及游标的作用
- 笔记2,使用jQuery
- tomcat跨域访问
- 一个label里有个链接,点这个特别颜色的一些字,会执行一些操作
- VMware虚拟机NAT模式的具体配置
- oc强化day02内容
- Android系统架构的详细解析——很全面
- Eclipse中修改SVN用户名和密码方法
- Android系统移植(五)
- Windows安装运行Kafka
- EL表达式
- Android 软键盘和emoji表情切换方案,和微信几乎一样的体验
- 笔记1,认识jQuery
- Android LinearLayout及TextView的布局方式
- subversion安装和使用
- 《网络攻防技术与实践》学习指导
- 亚里士多德 - 上古时代的百科全书
- Apple Pay能否打破支付宝和微信支付一统天下的格局?
- JavaScript事件使用指南
- svn—Eclipse中如何显示svn 信息