题目描述:
丑数
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
输入描述:
20
输出描述:
36
代码实现:
import java.util.Scanner;
import java.util.TreeSet;
public class test3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
if(n<=0){
return;
}
int a=0,b=0,c=0;
int[] num=new int[n+1];
num[0]=1;
for(int i=1;i<n;i++){
int n1=num[a]*2;
int n2=num[b]*3;
int n3=num[c]*5;
num[i]=Math.min(n1,Math.min(n2,n3));
while(num[a]*2<=num[i])a++;
while(num[b]*3<=num[i])b++;
while(num[c]*5<=num[i])c++;
}
System.out.println(num[n-1]);
}
}