class Solution:
"""
@param n: An integer
@return: the nth prime number as description.
"""
def nthUglyNumber(self, n):
# write your code here
def un(a,b,c):
return 1*(2**a)*(3**b)*(5**c)
r=[1]
edge ={2:[1,0,0],3:[0,1,0],5:[0,0,1]}
def walk(r,edge):
m = min(edge)
a,b,c = edge[m]
r.append(m)
edge[un(a+1,b,c)] = [a+1,b,c]
edge[un(a,b+1,c)] = [a,b+1,c]
edge[un(a,b,c+1)] = [a,b,c+1]
edge.pop(m)
while(len(r)!=n):
walk(r,edge)
return r[-1]