zoukankan      html  css  js  c++  java
  • 算术基本定理 求一个数的约数个数

    算术基本定理  求一个数的约数个数

        算术基本定理:

          分解素因数:n=(p1^k1)*(p2^k2)*...*(pn*kn).(分解方式唯一)

          n的约数个数为cnt(n)=(1+k1)*(1+k2)*...*(1+kn).

    bool isprime[maxn];
    vector<int> prime;
    
    void play_prime()
    {
        memset(isprime,1,sizeof(isprime));
        isprime[1]=0;
        for(int i=2;i<maxn;i++){
            if(!isprime[i]) continue;
            for(int j=i+i;j<maxn;j+=i){
                if(isprime[j]) isprime[j]=0;
            }
        }
        for(int i=2;i<maxn;i++)
            if(isprime[i]) prime.push_back(i);
    }
    
    ll Cnt(ll n)
    {
        ll res=1;
        for(int i=0;prime[i]<=n&&i<prime.size();i++){
            ll k=0;
            while(n%prime[i]==0){
                n/=prime[i];
                k++;
            }
            res*=(1+k);
        }
        if(n>1) res*=(1+1);
        return res;
    }
    View Code
    (2) 它的全体正因数之和为
     
                      
                                 
              当    时就称N为 完全数。 是否存在奇完全数,是一个至今未解决之猜想。
     
    (3) 利用算术基本定理可以重新定义整数a和b的最大公因子   和 最小公倍数 
     
     
     
     并证明  
     
    没有AC不了的题,只有不努力的ACMER!
  • 相关阅读:
    第一次结对编程作业
    第7组 团队展示
    第一次个人编程作业
    js学习笔记(1)
    第一次博客作业
    期末总结
    王者光耀团队作业
    第四次c++作业
    c++第三次作业
    第一次编程作业
  • 原文地址:https://www.cnblogs.com/--560/p/4548125.html
Copyright © 2011-2022 走看看