hdu1058

#include<bits/stdc++.h>
#define LL long long
#define GG long long
#define For(i, j, k) for(int i=j; i<=k; i++)
#define Dow(i, j, k) for(int i=j; i>=k; i--)
using namespace std;
inline GG read() {
    GG x = 0, f = 1;
    char ch = getchar();
    while(ch<'0'||ch>'9') { if(ch=='-') f = -1; ch = getchar(); }
    while(ch>='0'&&ch<='9') { x = x*10+ch-48; ch = getchar(); }
    return x * f;
}

int n, m, i, j, y, t; 
int e[100][100];
int f[6000]; 
priority_queue <LL,vector<LL>,greater<LL> > q; 

int main() {
	q.push(1); f[1] = 1; 
	while(1) {
		LL x = q.top(); q.pop(); 
		if(y==x) continue; 
		y = x; ++t; 
		f[t] = x;
		if(t==5842) break;   
		q.push(x*2); q.push(x*3); 
		q.push(x*5); q.push(x*7);   
	} 
	while(1) {
		n = read();  
		if(n==0) return 0; 
		printf("The %d", n); 
		if(n%100==11||n%100==12||n%100==13) printf("th"); 
		else if(n%10==1) printf("st"); 
		else if(n%10==2) printf("nd"); 
		else if(n%10==3) printf("rd"); 
		else printf("th"); 
		printf(" humble number is %d.\n", f[n]); 
	}
	
	return 0; 
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值