递推欧拉函数

  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. }





附件列表

    原文地址:https://www.cnblogs.com/sober-reflection/p/73ee2f34434d0439ac2d7038cec12b4d.html