Write a program to find the n
-th ugly number.
Ugly numbers are positive numbers whose prime factors only include 2, 3, 5
.
Example:
Input: n = 10 Output: 12 Explanation:1, 2, 3, 4, 5, 6, 8, 9, 10, 12
is the sequence of the first10
ugly numbers.
Note:
1
is typically treated as an ugly number.n
does not exceed 1690.
int nthUglyNumber(int n) {
if(n<=0)
return ;
if(n<=6)
return n;
int res[n+1];
res[0]=1;
int i=0;
int i2=0,i3=0,i5=0;
int sum,tem,k;
while(i<n)
{
int m2=res[i2]*2,m3=res[i3]*3,m5=res[i5]*5;
int m0=(m2<m3?m2:m3);
int m1=(m0<m5?m0:m5);
if(m1==m2)
i2++;
if(m1==m3)
i3++;
if(m1==m5)
i5++;
i++;
res[i]=m1;
}
return res[n-1];
}