蓝桥杯 试题 基础练习 分解质因数

题意:  求出区间[a,b]中所有整数的质因数分解。

思路:我们可以先求出从2到b之间所有的素数,把这些素数插入数组,然后每次从头遍历这个素数数组,如果当前的数能整除素数,那么跟新新的当前的值,及除以素数,然后从头开始重新遍历素数数组。如果不能整除当前数组,那么就++,尝试下一个素数!

#includeusing namespace std;vector<int> p;bool ls(int m){for(int i=2;i<=sqrt(m);i++){if( m % i == 0){return false;}}return true;
}int main(){int n,m;cin>>n>>m;for(int i=2;i<=m;i++){//把里面的素数都找出来 if(ls(i)){p.push_back(i);}}int res;for(int i=n;i<=m;i++){cout<<i<<"=";res = i;for(int j=0;j<p.size();){if(res % p[j]==0){res /= p[j];cout<<p[j];if(res != 1) cout<<"*";else break;}else j++;}cout<<endl;} return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部