同poj1338
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int min(int a,int b,int c,int d)
{
int m,n;
m=(a>b)?b:a;
n=(c>d)?d:c;
return ((m>n)?n:m);
}
int main()
{
int n,p2=1,p3=1,p5=1,p7=1,i;
long long num[5845],a;
num[1]=1;
for(i=2;i<=5842;i++)
{
num[i]=min(2*num[p2],3*num[p3],5*num[p5],7*num[p7]);
if(num[i]==2*num[p2]) p2++;
if(num[i]==3*num[p3]) p3++;
if(num[i]==5*num[p5]) p5++;
if(num[i]==7*num[p7]) p7++;
}
while(scanf("%d",&n)!=EOF&&n)
{
if(n==11||n==12||n==13)
{
printf("The %dth humble number is %ld.\n",n,num[n]);
}
else if(n%10==1)
{
if(n%100!=11)
printf("The %dst humble number is %ld.\n",n,num[n]);
else
printf("The %dth humble number is %ld.\n",n,num[n]);
}
else if(n%10==2)
{
if(n%100!=12)
printf("The %dnd humble number is %ld.\n",n,num[n]);
else
printf("The %dth humble number is %ld.\n",n,num[n]);
}
else if(n%10==3)
{
if(n%100!=13)
printf("The %drd humble number is %ld.\n",n,num[n]);
else
printf("The %dth humble number is %ld.\n",n,num[n]);
}
else
{
printf("The %dth humble number is %ld.\n",n,num[n]);
}
}
return 0;
}