# -*- coding:utf-8 -*-
class Solution:
    def GetUglyNumber_Solution(self, index):
        # write code here
        dp=[1]
        dic={2:0,3:0,5:0}
        while len(dp)<index:
            v = []
            for i,j in dic.items():
                v.append((i*dp[j],i))
            v.sort()
            minval = v[0][0]
            for i,j in v:
                if i <= minval:
                    dic[j]+=1
                else:
                    break
            dp.append(minval)
        return dp[-1] if index>0 else 0