class Solution:
def nthUglyNumber(self, n: int) -> int:
res = [1]
i2, i3, i5 = 0, 0, 0
for i in range(n-1):
tmp = min(res[i2]*2, res[i3]*3, res[i5]*5)
res.append(tmp)
if tmp % 2 == 0: i2 += 1
#关于都用if的原因,如果类似2*3这样,那么2,3对应的指针都要+1
if tmp % 3 == 0: i3 += 1
if tmp % 5 == 0: i5 += 1
return res[-1]