hdu 4556(欧拉)

来源:互联网 发布:雪梨cherie的淘宝店铺 编辑:程序博客网 时间:2024/05/16 19:37

点击打开链接


欧拉函数

注意用int64。。


#include"stdio.h"#include"string.h"#define N 1000001__int64 p[N];void phi(){int i,j;for(i=1;i<N;i++)p[i]=i;for(i=2;i<N;i+=2)p[i]/=2;for(i=3;i<N;i+=2){if(p[i]==i){for(j=i;j<N;j+=i)p[j]=p[j]/i*(i-1);}}}int main(){int n,i;phi();for(i=2;i<N;i++)p[i]+=p[i-1];while(scanf("%d",&n)!=-1)printf("%I64d\n",2*p[n]+1);return 0;}


原创粉丝点击