输入一个数字,输出它的所有质数因子。
#include <iostream> #include <cmath> #include <sstream> using namespace std; //判断一个数是质数:如果用0~n^0.5去除,均无法整除,则为质数 int isPrime(int inputdata) { int flag = 1; for(int i = 2; i < sqrt(inputdata); i++) { if(inputdata % i == 0) { flag = 0;//inputdata不是质数 break; } } return flag; } //分解质因数 void primeFactor(int indata) { int ret = isPrime(indata); if(ret == 1) { cout << indata << " "; } else{ for(int i = 2; i < indata; i++) { if(indata % i == 0) { //第一个数一定是质因数 cout << i << " "; primeFactor(indata / i); break; } } } } int main() { int indata; cin >> indata; primeFactor(indata); return 0; }