用递归寻找整数的素数因子

写一个子函数 并在子函数中用递归的方法寻找整数的素数因 ,求出给定自然数 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;
}