#include<bits/stdc++.h>
using namespace std;
string str;
long long sum=0;
void get_sum(){
for(int i=0;i<str.length();i++){
if(str[i]>='0' && str[i]<='9'){
sum=sum*10+(str[i]-'0');
}
}
}
bool is_prime(long long sum){
if(sum<2) return 0;
else{
for(int i=2;i<=sum/i;i++){
if(sum%i==0) return 0;
}
}
return 1;
}
void un_prime(long long x){
bool flag=0;
printf("%d=",x);
for(int i=2;i<=x/i;i++){
if(x%i==0){
int s=0;
while(x%i==0) x/=i,s++;
if(flag) cout<<"*"<<i<<"^"<<s;
else cout<<i<<"^"<<s,flag++;
}
}
if(x>1) cout<<"*"<<x<<"^"<<1<<endl;
printf("\n");
}
int main(){
while(true){
printf("Enter the number=\n");
getline(cin,str);
sum=0;
get_sum();
if(sum==0) return 0;
printf("Prime? ");
bool st=is_prime(sum);
if(st) printf("Yes!\n");
else printf("No!\n");
if(sum>=40000000) printf("The number is too large!\n\n");
else if(!st && sum>=2) un_prime(sum);
else printf("\n");
}
}