关闭

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

标签: 数论模板
442人阅读 评论(0) 收藏 举报
分类:


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

#include<stdio.h>
#include<string.h>
#define N 1000005
#define ll long long
int 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]);
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:107969次
    • 积分:3121
    • 等级:
    • 排名:第11455名
    • 原创:212篇
    • 转载:21篇
    • 译文:0篇
    • 评论:1条
    最新评论