| 12345678910111213141516171819202122232425262728 | func nthUglyNumber(n int) int {	nums := []int{1}	next2, next3, next5 := 2, 3, 5	for i, i2, i3, i5 := 1, 0, 0, 0; i < n; i++ {		next := next2		if next3 < next {			next = next3		}		if next5 < next {			next = next5		}		nums = append(nums, next)		if next == next2 {			i2++			next2 = nums[i2] * 2		}		if next == next3 {			i3++			next3 = nums[i3] * 3		}		if next == next5 {			i5++			next5 = nums[i5] * 5		}	}	return nums[n-1]}
 |