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

    欧拉函数∮是数论中的一个重要函数,设n是正整数,∮(n)表示{0,1,2,...n-1}中与n互素的数的个数。例如∮(12)=4,因为与12互素的数有1,5,7,11.这里认为∮(1)=1.下面给出欧拉函数的计算公式。

    ∮(n)=n(1- 1/p1)(1- 1/p2)(1- 1/p3)...(1- 1/pk)

    欧拉函数的性质:

     1.若n是质数p的k次幂,φ(n)= (p-1)p^(k-1)
     2.若m,n互质,φ(mn)= φ(m)φ(n)

     3.若n为奇数,则∮(n)=∮(2n)

    代码:

    欧拉函数的筛法代码:

    #include<stdio.h>
    #define maxn 100
    int prime[maxn];
    int ans[maxn];
    int main()
    {
        prime[0]=prime[1]=0;
        for(int i=2;i<=maxn;i++)
            prime[i]=1;
        for(int i=1;i<=maxn;i++)
            ans[i]=i;
        for(int i=2;i<=maxn;i++)
        {
            if(prime[i])
                for(int j=i;j<=maxn;j+=i)
                  {
                      ans[j]=ans[j]/i*(i-1);
                      prime[j]=0;
                  }
        }
        for(int i=1;i<=maxn;i++)
            printf("%d %d
    ",i,ans[i]);
        return 0;
    }

    单独求欧拉函数代码:

    int eular(int n)
    {
      int ret=1,i;
      for(i=2;i*i<=n;i++)
        if(n%i==0)
        {
          n/=i,ret*=i-1;
          while(n%i==0)
          n/=i,ret*=i;
        }
      if(n>1)
        ret*=n-1;
      return ret;
    }
    2-100的欧拉函数值表
    n φ(n)
    2 1
    3 2
    4 2
    5 4
    6 2
    7 6
    8 4
    9 6
    10 4
    11 10
    12 4
    13 12
    14 6
    15 8
    16 8
    17 16
    18 6
    19 18
    20 8
    21 12
    22 10
    23 22
    24 8
    25 20
    26 12
    27 18
    28 12
    29 28
    30 8
    31 30
    32 16
    33 20
    34 16
    35 24
    36 12
    37 36
    38 18
    39 24
    40 16
    41 40
    42 12
    43 42
    44 20
    45 24
    46 22
    47 46
    48 16
    49 42
    50 20
    51 32
    52 24
    53 52
    54 18
    55 40
    56 24
    57 36
    58 28
    59 58
    60 16
    61 60
    62 30
    63 36
    64 32
    65 48
    66 20
    67 66
    68 32
    69 44
    70 24
    71 70
    72 24
    73 72
    74 36
    75 40
    76 36
    77 60
    78 24
    79 78
    80 32
    81 54
    82 40
    83 82
    84 24
    85 64
    86 42
    87 56
    88 40
    89 88
    90 24
    91 72
    92 44
    93 60
    94 46
    95 72
    96 32
    97 96
    98 42
    99 60
    100 40
  • 相关阅读:
    Windows常用cmd命令总结
    电脑UEFI启动是什么?
    PHP 7天前的时间戳
    背景图片
    SQLite/SQL Server Compact Toolbox
    修改浏览器下拉条颜色和粗细
    thinkphp5 apache htaccess配置文件重写
    thinkphp5 token验证
    英文共享js
    ul高度为0的解决方法
  • 原文地址:https://www.cnblogs.com/lyf123456/p/3397532.html
Copyright © 2011-2022 走看看