zoukankan      html  css  js  c++  java
  • 欧拉函数随笔

    • 定义

      在数论中,对正整数n,欧拉函数phi(n)是小于等于n的正整数中与n互质的数的数目。

    • 通式

      phi(x)=x(1-1/p1)(1-1/p2)...(1-1/pn),其中,p1,p2...pn为n的质因数。

      证明:

      将n表示成素数的乘积形式: n=p1^k1*p2^k2...pn^kn,

      可得,phi(n)=(p1^k1-p1^(k1-1))...*(pn^kn-pn^(kn-1))

      next,phi(n)=n(1-1/p1)(1-1/p2)..(1-1/pn),其中,p1,p2..pn均为素数。

      其中,当n=p^k时,1到n中p的倍数与n并不互素,这样的数有n/p个。

    • 性质(递推关系)(p为n的质因数)

      若n%p==0 && (n/p)%p==0,则phi(n)=phi(n/p)*p;

      若n%p==0 && (n/p)%p!=0,则phi(n)=phi(n/p)*(p-1);

    • 算法实现
    •  1 int p[MAXN],phi[MAXN];
       2 
       3 void solve(int N)
       4 {
       5     for(int i=1; i<=N; i++)
       6     {
       7         p[i] = 1; // 1 for prime number
       8         phi[i] = i;
       9     }
      10    p[1] = 0;
      11     for(int i=1; i<=N; i++)
      12     {
      13         if(p[i])
      14         {
      15             for(int j=2*i; j<=N; j+=i)
      16                 p[j] = 0;
      17         }
      18     }
      19     for(int i=2; i<=N; i++)
      20     {
      21         if(p[i])
      22             for(int j=i; j<=N; j+=i)
      23                 phi[j] = phi[j]/i*(i-1);
      24     }
      25 }
    •  应用

      欧拉函数的主要应用是欧拉定理以及运用ploya定理时对指数循环节进行优化,有待补充。

        

  • 相关阅读:
    100以内整数四则运算
    软件工程基础
    使用python分析微信好友
    数据库实践
    爬虫
    Python编程预测比赛成绩
    自己的第一个网页
    科学计算与可视化
    对小学生四则运算用界面呈现
    在使用memory_profiler检测python代码运行时内存出现解码错误
  • 原文地址:https://www.cnblogs.com/leeshine/p/4578458.html
Copyright © 2011-2022 走看看