Note
Code:
#include<bits/stdc++.h>
using namespace std;
struct factors{
int len;
int value;
factors(){
len=0;
}
}fac[10];
bool is_prime(int n){
if(n<=1) return false;
for(int i=2;i<=(int)sqrt(n);i++){
if(n%i==0) return false;
}
return true;
}
int main(){
int n,i=2,j=0;
cin>>n;
if(n==1) cout<<"1=1";
else{
int n_print=n,sqr=(int)sqrt(n);
while(i<=sqr){
if(is_prime(i)==true){
int flag=0;
while(n%i==0){
flag=1;
fac[j].value=i;
fac[j].len++;
n/=i;
}
if(n>1&&flag==1) j++;
}
if(n==1) break;
i++;
}
if(n>1){
fac[j].value=n;
fac[j].len=1;
}
cout<<n_print<<"=";
for(int k=0;k<=j;k++){
if(k!=0) cout<<"*";
cout<<fac[k].value;
if(fac[k].len>1) cout<<"^"<<fac[k].len;
}
}
return 0;
}