LightOJ 1007 - Mathematically Hard

题意:求出区间[a,b]的PHI值的平方和
分析:充分理解欧拉函数的定义,结合素数筛选的巧妙应用
      
      
      对于素数筛选,对于一个素数pi,在筛选其倍数k*pi时就可以计算k*pi这个数的欧拉函数了

View Code
 1 void cal_PHI(){
 2     int i,j;
 3     int m=(int)sqrt(maxn*1.0);
 4     memset(mk,0,sizeof(mk));
 5     for(i=1;i<maxn;i++) num[i]=i;
 6     for(i=2;i<maxn;i++){
 7         if(!mk[i]){
 8             for(j=i;j<maxn;j+=i){
 9                 mk[j]=1;
10                 num[j]=num[j]*(i-1)/i;
11             }
12         }
13     }
14 }
 
      不过在求区间平方和的时候水了,MEL~ 下次要吸取教训。。。

 

posted @ 2012-05-26 20:59  Abrain  阅读(228)  评论(0编辑  收藏  举报