质因数分解-试除法

作者 : 开心源码 本文共324个字,预计阅读时间需要1分钟 发布时间: 2022-05-13 共218人阅读

算数基本定理
任何一个大于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. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 质因数分解-试除法

发表回复