首页 > 其他 > 详细

欧拉函数

时间:2019-04-11 21:48:51      阅读:175      评论:0      收藏:0      [点我收藏+]

定义:给定正整数n,小于等于n的正整数之中,有多少个数与n互质

计算个数的公式 欧拉函数,φ(n)表示

证明:

  1. n = 1, φ(1) = 1 。1与任何数(包括自身)互质

  2. n为质数, φ(n)=n-1 。质数n与小于n的数互质(除了自身)

  3. 如果n是质数的次方 n = p^k ( p 为质数,k 为大于等于1的整数)。

   技术分享图片

   因为为p(质数)的k次方,则n的因子只有 p 。

   小于(p^k)的数有(p^k - 1)个

   所以p的倍数与n皆有(1,p)两个因子,除了p的倍数,其他数都与n互质

   所以小于n的数中为p的倍数的个数为:(p^k)/p - 1

   所以 φ(n) =  (p^k - 1) - ((p^k)/p - 1)

         =  p^k - p^k)/p

         =  p^k - p^(k-1)

         =  p^k(1 - 1/p)

       技术分享图片

  4. n = p * q (p, q互质)

    φ(n) = φ(p*p) = φ(p)*φ(q)

  5. 任意大于1的n

    n可以写成多个质数次方的积

            技术分享图片

    技术分享图片

    技术分享图片

    技术分享图片

直接求n的欧拉函数φ(n)

技术分享图片
ll Euler(ll n)
{
    ll ans = 1;
    ans = ans * n;
    for(ll i = ; i * i <= n; i++)
    {
        if(n % i == 0) ans = ans / i * (i - 1);
        while(n % i == 0) n /= i;
    }
    if(n > 1) ans = ans / n * (n - 1);
    return ans;

}
View Code

 

 

    

 

欧拉函数

原文:https://www.cnblogs.com/1998LJY/p/10692803.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!