递推欧拉函数

  1. /*=======================================================*\
  2. | 递推求欧拉函数phi(i)
  3. 欧拉函数\varphi(n)是小于或等于n的正整数中与n互质的数的数目
  4. \*=======================================================*/
  5. #define N 3000000
  6. __int64 phi[N + 100];
  7. void Euler()
  8. {
  9. int i, j;
  10. for(i = 1; i < N; i++)
  11. phi[i] = i;
  12. for(i = 2; i < N; i++)
  13. if(i == phi[i]) //若i为素数 第一次不是
  14. for(j = i; j < N; j += i) //让j累加i
  15. phi[j] = (phi[j] / i) * (i - 1); //求欧拉函数
  16. }





附件列表

     

    posted @ 2015-01-29 11:31  sober_reflection  阅读(229)  评论(0编辑  收藏  举报