美文网首页程序员算法
质因数分解-试除法

质因数分解-试除法

作者: dachengquan | 来源:发表于2020-08-04 19:16 被阅读0次

算数基本定理
任何一个大于1的正整数都能被唯一分解为有限个质数的乘积。N=p_1^{c_1}p_2^{c_2}...p_n^{c_n}
其中c_i是正整数,p_i是质数,且满足p_1<p_2<...<p_m
试除法
结合质数判定的试除法和埃筛,扫描2~\sqrt{N}之间的每个整数d,如果d能整除n,则从N中除掉所有的因子d,同时累计除去d的个数。
如果d是合数,那么组成他的因子一定在前面就被除去了,累计的d一定是质数。组成N,大于\sqrt N的质数最多有1个,如果存在就是最后剩下的N。

int get_primes(int n){
    for(int i = 2;i<=n/i;i++){
        if(n%i==0){
            int k = 0;
            while(n%i==0){
                k++;
                n/=i;
            }
            cout<<i<<"^"<<k<<endl;
        }
    }
    if(n>1) cout<<n<<"^"<<1<<endl;
    cout<<endl;
}

相关文章

  • 质因数分解-试除法

    算数基本定理任何一个大于1的正整数都能被唯一分解为有限个质数的乘积。其中是正整数,是质数,且满足试除法结合质数判定...

  • 分解质因数和应用

    分解质因数是什么分解质因数就是将一个合数分解成多个质数相乘的形式,这就是分解质因数。我举个最简单的例子,比如说4它...

  • 辅导笔记(4):质因数分解

    // 把一个合数分解成若干个质因数的乘积的形式,即求质因数的过程叫做分解质因数。 //输入样例:36 //输出:3...

  • 阶乘分解

    题目链接:阶乘分解分解阶乘的质因数。将1~N每个数,分别分解质因数合并的时间复杂度是。对于N!来说假设p

  • 分解质因数

    def analysisNum(num): analysisNum(100)

  • 分解质因数

    题目将一个正整数分解质因数。例如:输入90,打印出90=233*5. 程序分析 对n进行分解质因数,应先找到一个最...

  • 分解质因数

    对一个整数进行分解质因数。方法一:暴力: 方法二:Pollard Rho算法时间复杂度为n^0.25 原文请点击这...

  • 分解质因数

  • 分解质因数

    //输入两个数字a,b,则输出从a到b之间的所有整数的分解出质因数乘积的式子 void calArray(int ...

  • 分解质因数

    题目内容:每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如...

网友评论

    本文标题:质因数分解-试除法

    本文链接:https://www.haomeiwen.com/subject/ibzrrktx.html