# include <stdio.h>
# include <math.h>
int check(int n)
{
int i;
for(i = 3; i <= sqrt(n); i ++)
{
if(! (n % i))
return 0;
}
return 1;
}
int s[300];
int main()
{
long int N, n;
int i, j, cou=1;
int r[300]={0};
scanf("%ld",&N);
if(N == 1)
{
printf("1=1\n");
return 0;
}
else
n = N;
s[0] = 2;//get 素数集
for(i = 3; i < 1500; i += 2)
{
if( check(i))
{
s[cou ++] = i;
}
}
for(i = 0; n != 1; )//拆分
{
if(! (n%s[i]) )
{
r[i] ++;
n = n/s[i];
}
else
{
i ++;
}
}
printf("%ld=",N);//格式输出
for(j = 0; j < 300; j ++)
{
if(r[j] == 0)
continue;
else
{
if(j == i)//最后一位,没有*号
{
if(r[j] == 1)
printf("%d",s[j]);
else
printf("%d^%d",s[j],r[j]);
}
else//非最后一位
{
if(r[j] == 1)
printf("%d*",s[j]);
else
printf("%d^%d*",s[j],r[j]);
}
}
}
return 0;
}