Humble Numbers
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 16520 Accepted Submission(s): 7168
Write a program to find and print the nth element in this sequence
import java.util.Scanner;
/**
* 尋找醜數問題
* @author Administrator
*
*/
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long[] array = new long[5845];
int[] prime = {2,3,5,7};
array[1] = 1;
for(int i=2; i<=5842; i++){
array[i] = Integer.MAX_VALUE;
for(int j=0; j<4; j++){
for(int k=i-1; k>=1; k--){
if(array[k]*prime[j] <= array[i-1])
break;
if(array[k]*prime[j] < array[i]){
array[i] = array[k]*prime[j];
}
}
}
}
while(in.hasNext()){
int n = in.nextInt();
if(n == 0)
break;
if(n%10 == 1 && n%100 != 11){
System.out.println("The "+n+"st humble number is "+array[n]+".");
}else if(n%10 == 2 && n%100 != 12){
System.out.println("The "+n+"nd humble number is "+array[n]+".");
}else if(n%10 == 3 && n%100 != 13){
System.out.println("The "+n+"rd humble number is "+array[n]+".");
}else{
System.out.println("The "+n+"th humble number is "+array[n]+".");
}
}
}
}