s=show r=read.s m@main=do n<-readLn putStrLn$s n++" = "++unwords[s x++'^':s p|p<-[2..21],x<-[round$r n**(1/r p)],x^p==n] m