9 Code and byte count previously didn't match, applied golfing suggestions in post comment and corrected byte count.
source | link

Python, 166 162 159 bytes

You guys are much better. This is what I used! (the algorithm that solved it calls this)

from primefac import*
def c(n):
 x=factorint(n)
 a=''
 for i in range(len(x)):
  l=min(x.keys())
  a+=str(l)
  if x[l]>1:a+=str(x[l])
  x.pop(l)
 return int(a)

Python, 166 159 bytes

You guys are much better. This is what I used! (the algorithm that solved it calls this)

from primefac import*
def c(n):
 x=factorint(n)
 a=''
 for i in range(len(x)):
  l=min(x.keys())
  a+=str(l)
  if x[l]>1:a+=str(x[l])
  x.pop(l)
 return int(a)

Python, 166 162 159 bytes

You guys are much better. This is what I used! (the algorithm that solved it calls this)

from primefac import*
def c(n):
 x=factorint(n)
 a=''
 for i in range(len(x)):
  l=min(x.keys())
  a+=str(l)
  if x[l]>1:a+=str(x[l])
  x.pop(l)
 return int(a)
8 Code and byte count previously didn't match, applied golfing suggestions in post comment and corrected byte count.
source | link

Python, 166 162159 bytes

You guys are much better. This is what I used! (the algorithm that solved it calls this)

from primefac import *import*
def c(n):
 x=factorint(n)
 a=''
 for i in range(0,len(x)): 
    l=min(x.keys())
    a+=str(l)
    if x[l]>1:
     a+=str(x[l])
    x.pop(l)
 return int(a)

Python, 166 162 bytes

You guys are much better. This is what I used! (the algorithm that solved it calls this)

from primefac import *
def c(n):
 x=factorint(n)
 a=''
 for i in range(0,len(x)): 
    l=min(x.keys())
    a+=str(l)
    if x[l]>1:
     a+=str(x[l])
    x.pop(l)
 return int(a)

Python, 166 159 bytes

You guys are much better. This is what I used! (the algorithm that solved it calls this)

from primefac import*
def c(n):
 x=factorint(n)
 a=''
 for i in range(len(x)):
  l=min(x.keys())
  a+=str(l)
  if x[l]>1:a+=str(x[l])
  x.pop(l)
 return int(a)
7 Forgot to shorten function name
source | link

Python, 166166 162 bytes

You guys are much better. This is what I used! (the algorithm that solved it calls this)

from primefac import *
def climbc(n):
 x=factorint(n)
 a=''
 for i in range(0,len(x)): 
    l=min(x.keys())
    a+=str(l)
    if x[l]>1:
     a+=str(x[l])
    x.pop(l)
 return int(a)

Python, 166 bytes

You guys are much better. This is what I used! (the algorithm that solved it calls this)

from primefac import *
def climb(n):
 x=factorint(n)
 a=''
 for i in range(0,len(x)): 
    l=min(x.keys())
    a+=str(l)
    if x[l]>1:
     a+=str(x[l])
    x.pop(l)
 return int(a)

Python, 166 162 bytes

You guys are much better. This is what I used! (the algorithm that solved it calls this)

from primefac import *
def c(n):
 x=factorint(n)
 a=''
 for i in range(0,len(x)): 
    l=min(x.keys())
    a+=str(l)
    if x[l]>1:
     a+=str(x[l])
    x.pop(l)
 return int(a)
6 Golfed it down. See my comment for more info.
source | link
5 added 50 characters in body
source | link
4 added 22 characters in body
source | link
3 deleted 1 character in body
source | link
2 added 84 characters in body
source | link
1
source | link