您的位置:首页 > 其它

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

2013-12-03 17:03 429 查看
在百度百科学的,,本来源代码有bug,还编辑了一下百度百科。。这东西果然不靠谱。。

#include<stdio.h>
#include<string.h>
#define N 1000005
#define ll long long
int prime
;
ll phi
;
ll sum
;

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]);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: