zoukankan      html  css  js  c++  java
  • euler_prime

     1 /*
     2  算术基本定理
     3  n=p1^a1*p2^a2*p3^a3*...*pn^an
     4 
     5  约数个数:(p1+1)*(p2+1)*(p3+1)*..*(pn+1)
     6  phi(n)=n*(1-1/p1)*(1-1/p2)*...*(1-1/pn)
     7 
     8  欧拉数:1-n中与n互质的数的个数
     9  phi(n)=n*(1-1/p1)*(1-1/p2)*...*(1-1/pn)
    10  若p为质数,则phi(n)=p-1
    11  小于n且与n互质个数的和=euler[n]*n/2
    12  (a,n)=1 ==>(n-a,n)=1
    13 
    14  n*n的点阵
    15  ...
    16  ...
    17  ...
    18  ans=2*(phi(1)+phi(2)+..+phi(n))
    19 
    20 */
    21 void euler_prime(int n) {
    22     euler[1] = 1;
    23     for (int i = 2; i <= n; i++) {
    24         if (!v[i]) {
    25             prime[t++] = i;
    26             euler[i] = i - 1;
    27         }
    28         for (int j = 0; j < t && prime[j] * i <= n; j++) {
    29             v[prime[j] * i] = 1;
    30             if (i % prime[j] == 0) {
    31                 euler[i * prime[j]] = euler[i] * prime[j];
    32                 break;
    33             }
    34             euler[i * prime[j]] = euler[i] * euler[prime[j]];
    35         }
    36     }
    37 }
    38 
    39 void fenjie(n) {
    40     euler(sqrt(n));
    41     for (int i = 0; i < t; i++) {
    42         if (n % prime[i] == 0) {
    43             k++;
    44             a[k] = prime[i];
    45             while (n % prime[i] == 0) {
    46                 b[k]++;
    47                 n = n / prime[i];
    48             }
    49             if (n == 1) break;
    50         }
    51     }
    52     if (n > 1) {
    53         k++;
    54         a[k] = n;
    55         b[k] = 1;
    56     }
    57 }
    58 
    59 int yishugeshu() {
    60     int res = 1;
    61     for (int i = 1; i <= k; i++) {
    62         res = res * (b[i] + 1);
    63     }
    64     return res;
    65 }
  • 相关阅读:
    hdu 6049 Sdjpx Is Happy
    L2-012. 关于堆的判断
    L2-010. 排座位
    L2-009. 抢红包
    L2-007. 家庭房产
    L2-008. 最长对称子串
    L2-011. 玩转二叉树
    l2-006 树的遍历
    l2-005
    l1-20 帅到没朋友
  • 原文地址:https://www.cnblogs.com/Accpted/p/11191839.html
Copyright © 2011-2022 走看看