写一个子函数 并在子函数中用递归的方法寻找整数的素数因 ,求出给定自然数 n(n>1)的所有(素数)
因子。例如:72 = 22233
#include <iostream>
#include <math.h>
using namespace std;
int cnt = 0;
bool isPrime(int n){
if(n <2) return false;
else if(n==2) return true;
for(int i=2; i<sqrt(n)+1; ++i){
if(n%i == 0) return false;
}
return true;
}
void find(int n, int *p){
if(isPrime(n)){ //判断是否是素数
*p++ = n;
cnt++;
}
else{
for(int i = 2; i<n; ++i){
if(n % i == 0){ //能够被i整除
cnt++;
*p++ = i;
find(n/i, p);
break;
}
}
}
}
int main(){
int n;
cin>>n;
int ans[100];
find(n, ans);
for(int i=0; i<cnt; ++i)
cout<<ans[i]<<" ";
return 0;
}