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

    在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。

    φ函数的值  通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数(看准是质因数 刚开始以为是因数 怎么算都不对),x是不为0的整数。

     

     1 # include <stdio.h>
     2 # include <math.h>     //0是朋友  1不是朋友
     3 # include <string.h>
     4 
     5 int a[33000], b[33000];
     6 
     7 int main(void)
     8 {
     9     int n, m;
    10     scanf("%d", &m);
    11     while(m--)
    12     {
    13         scanf("%d", &n);
    14         memset(a, 0, sizeof(a));
    15         memset(b, 0, sizeof(b));
    16         a[0] = 0, a[1] = 0, a[2] = 1;
    17         for(int i = 3; i <= n; i++)
    18             a[i] = i%2;
    19         int k = floor(sqrt(n)+0.5);
    20         for(int i = 3; i <= k; i++)     //质数
    21         {
    22             if(a[i])
    23             {
    24                 for(int j = 2*i; j <= n; j += i)
    25                 {
    26                     a[j] = 0;
    27                 }
    28             }
    29         }
    30 
    31         for(int i = 2; i < n; i++)     //因数
    32         {
    33             if(n % i == 0)
    34             {
    35                 b[i] = 1;
    36             }
    37         }
    38         double ans = n;
    39         for(int i = 2; i < n; i++)
    40         {
    41             if(b[i] && a[i])       //质因数
    42             {
    43                 ans*=(1-1.0/i);
    44             }
    45         }
    46         if(a[n])
    47             ans--;
    48         printf("%.0lf
    ", ans);
    49     }
    50 
    51 
    52 
    53     return 0;
    54 }
    欧拉函数模板题
  • 相关阅读:
    SpringBoot打jar包以及打成war包 (springboot2.0)
    学习软件开发的心得
    SQA计划
    继续冲吧
    别跑了,看看脚下有木有money
    springIOC的那些事
    ssm
    scrum 第二次冲刺
    云医院
    团队项目开发总结
  • 原文地址:https://www.cnblogs.com/Silence-AC/p/3337015.html
Copyright © 2011-2022 走看看