1 of 4

Python, 138 chars

N=input()
s=''
f=1
while f<65536:
 f+=1;e=0
 while N%f<1:e+=1;N/=f
 if e:s+='*%d'%f+('','^%d'%e)[e>1]
if N>1:s+='*%d'%N
print N,'=',s[1:]