#include<iostream>
#include<cmath>
using namespace std;
bool iss(long int n){//判断素数
if(n==2 || n==3) return true;
if(n%2==0 && n!=2) return false;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0) return false;
}
return true;
}
int main(){
long int n,a[100000][2]={0};//数组 a 用来存放因子及其幂指数
cin>>n;
long int cop=n;//后面要改变 n 的值,注意拷贝一份!!
if(iss(n)){cout<<n<<'='<<n<<endl;return 0;}
long int j=0;
for(long int i=2;n!=1 && i<=sqrt(cop);i++){
if(iss(i)){
if(n%i==0 && a[j][0]!=i){
j++;
a[j][0]=i;a[j][1]++;
n/=i;
i--;
}
else if(n%i==0 && a[j][0]==i){
a[j][1]++;n/=i;i--;
}
else;
}
else;
}
if(a[1][1]==1) cout<<cop<<'='<<a[1][0];
else cout<<cop<<'='<<a[1][0]<<'^'<<a[1][1];
for(long int i=2;i<=j;i++){
if(a[i][1]==1) cout<<'*'<<a[i][0];
else cout<<'*'<<a[i][0]<<'^'<<a[i][1];
}
return 0;
}
测评结果: