Problem
An ugly number is a positive integer whose prime factors are limited to 2, 3, and 5.
Given an integer n, return true if n is an ugly number.
Algorithm
An ugly number is a positive integer whose prime factors are limited to 2, 3, and 5.
Given an integer n, return the nth ugly number.
Code
class Solution:
def nthUglyNumber(self, n: int) -> int:
ugly_2, ugly_3, ugly_5 = 0, 0, 0
ans = [1] * n
for i in range(1, n):
ans[i] = min(2 * ans[ugly_2], min(3 * ans[ugly_3], 5 * ans[ugly_5]))
if ans[i] == 2 * ans[ugly_2]:
ugly_2 += 1
if ans[i] == 3 * ans[ugly_3]:
ugly_3 += 1
if ans[i] == 5 * ans[ugly_5]:
ugly_5 += 1
return ans[n-1]