问题描述
输入一个正整数,输出它的所有质数的因子(如180的质数因子为2、2、3、3、5)。
注意:相同的质数因子只输出一次。
输入样例180
输出样例2 3 5
注意可用一个变量标识该质数因子是否是第一次出现,代码如下:
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int factor = 2;
bool first_chuxian = true;
while (n > 1) {
if (n % factor == 0) {
if (!first_chuxian) {
cout << " ";
}
cout << factor;
first_chuxian = false;
n = n / factor;
while (n % factor == 0) {
n = n / factor;
}
}
else {
factor++;
if (factor * factor > n) {
if (!first_chuxian) {
cout << " ";
}
cout << n;
break;
}
}
}
return 0;
}