Python, 140 chars
---

    M=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 M,'=',s[1:]