http://acm.hdu.edu.cn/showproblem.php?pid=2824
筛法求素数,本来要打表,可是超内存,暴力居然没超时,,,对数据无语
#include<stdio.h> int phi[3000010]; int euler() { int i,j; for(i=0;i<3000010;i++) phi[i]=0; for(i=2;i<3000010;i++) { if(!phi[i]) for(j=i;j<3000010;j+=i) { if(!phi[j])phi[j]=j; phi[j]=phi[j]/i*(i-1); } } } int main() { int a,b; __int64 sum; euler(); while(scanf("%d%d",&a,&b)!=EOF) { sum=0; for(;a<=b;a++) sum+=phi[a]; printf("%I64d ",sum); } return 0; }