网站开发一月工资多少,wordpress地图定位,火车头 wordpress4.8,企业网站优化系统分解质因子
题目描述
将一个正整数分解质因数#xff0c;例如#xff0c;输入90#xff0c;输出2 3 3 5。
输入
输入一个正整数n#xff08;2n2000#xff09;。
输出
从小到大输出n的所有质因子#xff0c;每两个数之间空一格。
样例输入
20样例输出
2…分解质因子
题目描述
将一个正整数分解质因数例如输入90输出2 3 3 5。
输入
输入一个正整数n2n2000。
输出
从小到大输出n的所有质因子每两个数之间空一格。
样例输入
20样例输出
2 2 5解
这道题感觉挺难办的猛一看质数判断我会但让我分解质因数总感觉有些复杂
等到真正写出来就感觉嘶这小东西挺别致哈。
这个我从数的角度简单分析一下如果这个数可分解为若干个质因数那首先分解出来的应该是2、3、5这些值较小的质数而且往往会分解出来多个所以可以进行一个循环判断并在每次分解之后原来值的规模会缩减对应的倍数比如20分解出两个2之后原值缩减为5若遍历值大于原值开方就可以结束了实际上循环结束的判断与质数判断有异曲同工之妙。当然也有可能本身输入的就是质数而经过前面的循环之后得到的值也一定是一个质数最后再记得输出一下即可。
我分享一下参考代码大家可以跟着理解理解
#includebits/stdc.husing namespace std;int main() {int n;vectorint a; // 用于存储质因数cin n;for(int i 2; i sqrt(n) 1; i) {while(n % i 0) {a.push_back(i);n / i;}}if(n 2) // 若最后有剩余大于1的值也要记得输出a.push_back(n);for(int i 0; i a.size(); i) { // 格式化输出if(i 0) cout a[i];else cout a[i];}return 0;
}看看腿