题解 | #质数因子#
质数因子
http://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
#include <iostream>
#include <cmath>
using namespace std;
bool isZhishu(int num); //函数提前声明
int main(){
int num;
cin >> num;
//若num不是质数,则进入while循环
while(!isZhishu(num)){
//每一轮循环都要从i = 2开始遍历
for(int i = 2; i <= sqrt(num); i++){
if(num % i == 0){
if(isZhishu(i)) cout << i << " ";
num /= i;
break;
}
}
}
//如没有进入while循环,说明num本身是质数
cout << num << endl; //不要忘记了输出num本身!!
return 0;
}
//判断是否为质数
bool isZhishu(int num){
for(int i = 2; i <= sqrt(num); i++){
if(num % i == 0) return false;
}
return true;
}