hdu 2824 The Euler function--筛法欧拉函数

来源:互联网 发布:网络qos管理 编辑:程序博客网 时间:2024/05/23 19:17


在百度百科学的,,本来源代码有bug,还编辑了一下百度百科。。这东西果然不靠谱。。

#include<stdio.h>#include<string.h>#define N 1000005#define ll long longint prime[N];ll phi[N];ll sum[N];void dabiao(){int i,j,k;memset(prime,0,sizeof(prime));for(i=2;i*i<N;i++)if(!prime[i])for(j=i*i;j<N;j+=i)prime[j]=1;for(i=1;i<N;i++)phi[i]=i;for(i=2;i<N;i++)if(!prime[i])for(j=i;j<N;j+=i)phi[j]=phi[j]/i*(i-1);sum[1]=1;for(i=2;i<N;i++)sum[i]=sum[i-1]+phi[i];}int main(){dabiao();int i,j,k;int a,b;while(~scanf("%d%d",&a,&b))printf("%lld\n",sum[b]-sum[a-1]);}