m@main=do x<-readLn;putStrLn$unwords$x#" =":[z#"^"++n#""|n<-[2..21],z<-[round$f x**(1/f n)],z^n==x];m (#)=shows f=fromInteger