zoukankan      html  css  js  c++  java
  • 唯一分解定理(算术基本定理)及应用

    算术基本定理:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积

    N = p1^a1 * p2^a2 * p3^a3 * ... * pn^an

    (其中p1、p2、... pn为N的因子,a1、a2、... 、an分别为因子的指数)

    这样的分解称为 的标准分解式

    应用:

    (1)一个大于1的正整数N,如果它的标准分解式为:

    N = p1^a1 * p2^a2 * p3^a3 * ... * pn^an

    (2)N的因子个数     M(N)= (1 + a1)*(1 + a2)*(1 + a3)*...*(1 + an);

    (3)它的全体正因数之和为

    A(N) = (1 + p1 + p1^2 + p1^3 + ... + p1^n)*(1 + p2 + p2^2 +p2^3 +...+p2^n)*...
    *(1 + pn + pn^2 + pn^3 + ... + pn^n); 
     
    如果A(N) = 2N,那么N称为完全数
     
    int fac[N][N], j;
    //fac[i][0]表示第i个因子是什么,fac[i][1]表示第i个这个因子的个数(即唯一分解定理中该因子的指数)
    void fact(int n)
    {
        j = 0;//j表示n的因子个数
        memset(fac, 0, sizeof(fac));
        for(int i = 2 ; i <= n ; i++)
        {
            if(n % i == 0)
            {
                fac[j][0] = i;
                while(n % i == 0)
                {
                    n /= i;
                    fac[j][1]++;
                }
                j++;
            }
        }
        if(n > 1)
        {
            fac[j][0] = n;
            fac[j][1] = 1;
        }
    }//找n分解出来的因子,及其因子的指数
  • 相关阅读:
    2.2 Scala基础知识
    Linux---用户及权限管理类命令
    Linux---进程控制类命令
    Linux---vim编辑文本文件
    Linux---文件压缩与解压缩命令
    Linux---查找命令
    Linux---基本目录与文件命令
    nginx配置技巧汇总
    Go 内嵌静态资源
    go语言的time.Sleep
  • 原文地址:https://www.cnblogs.com/qq2424260747/p/4924249.html
Copyright © 2011-2022 走看看