Write a program to find the n
-th ugly number.
Ugly numbers are positive numbers whose prime factors only include 2, 3, 5
. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12
is the sequence of the first 10
ugly numbers.
Note that 1
is typically treated as an ugly number.
- An ugly number must be multiplied by either 2, 3, or 5 from a smaller ugly number.
public int nthUglyNumber(int n) {
SortedSet<Long> s1 = new TreeSet<>();
s1.add((long)1);
long result = s1.first();
for(int i=0;i<n;i++){
result = s1.first();
s1.add(result * 2);
s1.add(result * 3);
s1.add(result * 5);
s1.remove(result);
}
return (int)result;
}