失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 求一个数的最小素因子外加快速分解质因子

求一个数的最小素因子外加快速分解质因子

时间:2019-08-21 01:02:35

相关推荐

求一个数的最小素因子外加快速分解质因子

这种方法使用与数据小于1e7,

这种适用于分解1到n所有数的质因子,而且打印出来是从小到大排好序的

首先找到每个数的最小质因子,不停的除以最小素因子,只到x==1

如果是分解单个还是根号n复杂度的更好一点

#include"bits/stdc++.h"using namespace std;typedef unsigned long long ll;ll n,mod=1e9+7;ll visit[10000005],num=1,a[10000005],p[10000005];//p[x]代表x的最小素因子为p[x]void get(ll n){for(ll i=2;i<=n;i++){if(visit[i]==0){a[num++]=i;p[i]=i;}for(ll j=1;j<num&&i*a[j]<=n;j++){visit[i*a[j]]=1;p[i*a[j]]=a[j];if(i%a[j]==0)break;}}}void fenjie(ll x){while(x!=1){cout<<p[x]<<" ";x/=p[x];}}int main(){/*28001 827425989*/cin>>n;get(n);fenjie(n);return 0;}

如果觉得《求一个数的最小素因子外加快速分解质因子》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。