#include<iostream>
#include<cmath>
#include<map>
#include<set>
using namespace std;
bool isprime(long long num)
{
for(long long i=2;i<=sqrt(num);i++)
if(num%i==0)
return false;
return true;
}
int main()
{
long long num;
cin>>num;
if(num==0)
{
cout<<"0=0";
return 0;
}
long long temp=num;
long long i=2;
long long a[100];
int now=0;
while(num!=1)
{
if(isprime(i))
{
if(num%i==0)
{
a[now++]=i;
num=num/i;
i=2;
}
else
i++;
}
else
i++;
}
if(now==0)
cout<<num<<'='<<num;
else
{
cout<<temp<<'=';
long long number;
number=a[0];
long long mi=1;
for(int i=1;i<now;i++)
{
if(a[i]==number)
{
mi++;
}
else
{
if(mi==1)
{
cout<<a[i-1]<<'*';
}
else
{
cout<<a[i-1]<<'^'<<mi<<'*';
}
mi=1;
}
}
if(mi==1)
cout<<a[now-1];
else
cout<<a[now-1]<<'^'<<mi;
}
return 0;
}
```cpp
不知道为什么测试点1不能通过,也懒得找为什么了。。。