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

    欧拉函数的作用:

    有[1,2.....n]这样一个集合,f(n)=这个集合中与n互质的元素的个数。欧拉函数描述了一些列与这个f(n)有关的一些性质,如下:

    1、令p为一个素数,n = p ^ k,则   f(n) = p ^ k - p ^ (k-1)

    2、令m,n互质,则   f(m*n) = f(m) * f(n)

    3、如果n为奇数,则    f(2 * n) = f(n)

    下面给出一个例题的代码,例题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 #include <algorithm>
     5 #include <vector>
     6 #include <string>
     7 #include <cmath>
     8 using namespace std;
     9 const int maxn = 32769;
    10 
    11 int ans[maxn],prim[4000],flag_p[maxn];
    12 /*
    13 把1~maxn所有的素数打出来 
    14 */
    15 int SolPrim()
    16 {
    17     memset(flag_p,0,sizeof(flag_p));
    18     for(int i = 2;i < sqrt((double)maxn);++i)
    19         for(int j = i * i;j < maxn;j += i)
    20             flag_p[j] = 1;
    21     int  f = 0;
    22     for(int i = 2;i < maxn;++i)
    23         if(!flag_p[i])
    24             prim[f++] = i;
    25 }
    26 /*
    27 打表,把结果全部打出来 
    28 */
    29 void PreSol()
    30 {
    31     int f = SolPrim();
    32     memset(ans,0,sizeof(ans));
    33     for(int i = 1;i < 32768;++i)
    34     {
    35         int temp = 1,t = i;
    36         for(int j = 0;prim[j] <= i;++j)
    37         {
    38             int tt =  0;
    39             while(t % prim[j] == 0)
    40             {
    41                 t /= prim[j];
    42                 tt++;
    43             }
    44             if(tt) temp *= (pow(prim[j],tt-1) * (prim[j] - 1));
    45         }
    46         ans[i] = temp;
    47     }
    48 }
    49 
    50 int main()
    51 {
    52     PreSol();
    53     int T,n;
    54     scanf("%d",&T);
    55     while(T--)
    56     {
    57         scanf("%d",&n);
    58         printf("%d
    ",ans[n]);
    59     }
    60     return 0;
    61 }
    View Code
  • 相关阅读:
    Civil3D有哪些API
    Android Dex分包之旅
    android 资料
    Android拆分与加载Dex的多种方案对比
    Android开机时间分析
    (3) arm 指令
    (2) arm 指令条件码
    (1) arm 指令格式
    Temp
    Android持续优化
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/4713977.html
Copyright © 2011-2022 走看看