4 Use multiplication trick again

## Python, 140135135 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, 140135 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, 140135 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.

## 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

## 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