my code:
#include <bits/stdc++.h>
using namespace std;
long long n;
int cnt,flag=0;
bool f(long long a){
if(a<2) return 0;
for(int i=2;i*i<=a;i++) if(a%i==0) return 0;
return 1;
}
int main(){
cin>>n;
for(long long i=2;i*i<=n;i++){
if(f(i)&&n%i==0){
cnt=0;
while(n%i==0){
n/=i;
cnt++;
}
if(flag==0) flag=1;
else cout<<" * ";
if(cnt==1) cout<<i;
else cout<<i<<"^"<<cnt;
}
}
if(n!=1) cout<<" * "<<n;
return 0;
}
求助