4 Use multiplication trick again
source | link

Python, 140 135135 133 chars

M=N=input()
s=''
f=1
while f<4**8:
 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(s+'*%d'%N*(N>1))[1:]

Python, 140 135 chars

M=N=input()
s=''
f=1
while f<4**8:
 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:]

Python, 140 135 133 chars

M=N=input()
s=''
f=1
while f<4**8:
 f+=1;e=0
 while N%f<1:e+=1;N/=f
 if e:s+='*%d'%f+'^%d'%e*(e>1)
print M,'=',(s+'*%d'%N*(N>1))[1:]
3 Incorporate BlaXspirit's ideas.
source | link

Python, 140140 135 chars

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

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:]

Python, 140 135 chars

M=N=input()
s=''
f=1
while f<4**8:
 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:]
2 left side of = was wrong
source | link

Python, 138140 chars

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

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:]

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:]
1
source | link