m@main=do n<-readLn;putStrLn$n%"="++tail(n#2);m (%)=shows n#p|n<2=""|mod n p<1=['*':p%[c|r>1,c<-'^':r%""]++div n(p^r)#(p+1)|r<-[7,6..],mod n(p^r)<1]!!0|p^2>n=n#n|0<1=n#(p+1)