#include<iostream>
using namespace std;
#define MAX_INPUT 5842
int index2=0;
int index3=0;
int index5=0;
int index7=0;
int humbleNum[MAX_INPUT]={1};
void calcHumbleNum(){
int index=1;
while(1){
int minValue=humbleNum[index2]*2;
int minIndex=index2;
if(humbleNum[index3]*3<minValue){
minValue=humbleNum[index3]*3;
minIndex=index3;
}
if(humbleNum[index5]*5<minValue){
minValue=humbleNum[index5]*5;
minIndex=index5;
}
if(humbleNum[index7]*7<minValue){
minValue=humbleNum[index7]*7;
minIndex=index7;
}
if(minIndex==index2){
index2++;
}else if(minIndex==index3){
index3++;
}else if(minIndex==index5){
index5++;
}else if(minIndex==index7){
index7++;
}
if(humbleNum[index-1]!=minValue){
humbleNum[index]=minValue;
index++;
if(index==MAX_INPUT){
break;
}
}else{
continue;
}
}
}
void printOutput(int num){
cout<<"The "<<num;
if(num%10==1 && num%100!=11){
cout<<"st ";
}else if(num%10==2 && num%100!=12){
cout<<"nd ";
}else if(num%10==3 && num%100!=13){
cout<<"rd ";
}else{
cout<<"th ";
}
cout<<"humble number is "<<humbleNum[num-1]<<"."<<endl;
}
int main(int argc, char *argv[]){
calcHumbleNum();
int index;
while(cin>>index, index!=0){
printOutput(index);
}
return 0;
}
POJ-2247
最新推荐文章于 2019-03-30 20:13:33 发布