题目描述
给定一个整数 𝑛,请将它分解为质数的乘积。例如 60=2×2×3×5。
输入描述
单个整数表示 𝑛
输出描述
若干整数表示 𝑛的质数因子,按照从小到大的顺序输出。
数据范围
2≤n≤2000000000
测试样例1
输入
60
输出
2 2 3 5
测试样例2
输入
3
输出
3
解题思路
我们从2开始遍历,先看看有多少个2,一直除2直到除不了再变成3,再再变成4,如下代码(部分)
for(int i = 2; n > 1; ) {
if(n % i == 0) {
n /= i;
cout << i << ' ';
}
else i++;
}
代码
#include<bits/stdc++.h>
using namespace std;
int n;
int main() {
cin >> n;
for(int i = 2; n > 1; ) {
if(n % i == 0) {
n /= i;
cout << i << ' ';
}
else i++;
}
return 0;
}