题解 | #质数因子#
质数因子
http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
#include <iostream>
#include <vector>
using namespace std;
int main(){
long num = 0; //
cin >> num;
vector<int> res;
for(int i = 2; i * i <= num; ++i){ //2是最小的质因子 只需要验证一半便知2是不是质因子
//cout<<num<<endl;
while(num % i == 0){
res.push_back(i);
num /= i;
}
}
//如果m=1,则while循环中刚好被质数分解完,如果大于1,说明没有被分解完,m就是那最后一个质数
//同时,这句也可以应对输入为质数的特殊情况
if(num >= 2) res.push_back(num);
for(int i = 0; i < res.size(); i++){
cout << res[i] << " ";
}
cout << endl;
return 0;
}
华为题库题解 文章被收录于专栏
牛客华为题库的题解