HDU 2824 The Euler function 欧拉函数

来源:互联网 发布:淘宝用打印机什么牌子 编辑:程序博客网 时间:2024/05/21 10:42

欧拉函数裸题,直接上代码:

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<algorithm>#include<iostream>#include<vector>using namespace std;#define MAX 3000100int p[MAX],ans[MAX];bool a[MAX];int A,B;int main(){      //freopen("input.in","r",stdin);  //freopen("output.out","w",stdout);   int num=0;  for(int i=2;i<=3000001;i++)  {            if(!a[i])            {                 p[num++]=i;                 ans[i]=i-1;            }            for(int j=0;j<num && p[j]*i<=3000001;j++)            {                  a[p[j]*i]=true;                  if(!(i%p[j]))                  {                        ans[i*p[j]]=ans[i]*p[j];                        break;                  }                  else  ans[i*p[j]]=ans[i]*(p[j]-1);            }      }      while(scanf("%d%d",&A,&B)!=EOF)      {            __int64 ans1=0;            for(int i=A;i<=B;i++)                  ans1=ans1+ans[i];            printf("%I64d\n",ans1);      }  //system("pause");      return 0;}


 

转载注明出处:http://blog.csdn.net/u011400953

 

0 0
原创粉丝点击