#include <stdio.h> int main() { int n; int i,j,k; int digit; int MIN; int prime[5]={0,2,3,5,7}; long long result[5843]; result[1]=1; for(i=2;i<=5842;i++) { int MIN=2000000001; for(j=1;j<=4;j++) { for(k=1;k<i;k++) { if(MIN>prime[j]*result[k] && prime[j]*result[k]>result[i-1]) MIN=prime[j]*result[k]; } } result[i]=MIN; } while(scanf("%d",&n),n) { digit=n%10; if(n%100>=11 && n%100 <=13) printf("The %dth humble number is %ld./n",n,result[n]); else if(digit>=4 && digit<=9 || digit==0) printf("The %dth humble number is %ld./n",n,result[n]); else if(digit==1) printf("The %dst humble number is %ld./n",n,result[n]); else if(digit==2) printf("The %dnd humble number is %ld./n",n,result[n]); else printf("The %drd humble number is %ld./n",n,result[n]); } return 0; } //第i个Humble Numbers等于前i-1个Humble Numbers与2,3,5,7的积的最小值(还需去除已有的i-1个数)