Humble Numbers

Humble Numbers

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 8   Accepted Submission(s) : 4
Font: Times New Roman | Verdana | Georgia
Font Size: ← →

Problem Description

A number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... shows the first 20 humble numbers.

Write a program to find and print the nth element in this sequence

Input

The input consists of one or more test cases. Each test case consists of one integer n with 1 <= n <= 5842. Input is terminated by a value of zero (0) for n.

Output

For each test case, print one line saying "The nth humble number is number.". Depending on the value of n, the correct suffix "st", "nd", "rd", or "th" for the ordinal number nth has to be used like it is shown in the sample output.

Sample Input

1
2
3
4
11
12
13
21
22
23
100
1000
5842
0

Sample Output

The 1st humble number is 1.
The 2nd humble number is 2.
The 3rd humble number is 3.
The 4th humble number is 4.
The 11th humble number is 12.
The 12th humble number is 14.
The 13th humble number is 15.
The 21st humble number is 28.
The 22nd humble number is 30.
The 23rd humble number is 32.
The 100th humble number is 450.
The 1000th humble number is 385875.
The 5842nd humble number is 2000000000.

Source

University of Ulm Local Contest 1996 
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
int main(){
    int n;
    char s1,s2;
    int dp[6000],i;
    dp[1]=1;
    i=2;
    int two=1,three=1,five=1,seven=1,t1,t2;
    while(i<=5842){
        dp[i]=min((t1=min(2*dp[two],3*dp[three])),(t2=min(5*dp[five],dp[seven]*7)));
        if(dp[i]==dp[two]*2)two++;
        if(dp[i]==dp[three]*3)three++;
        if(dp[i]==dp[five]*5)five++;
        if(dp[i]==dp[seven]*7)seven++;
        i++;
    }
    while(cin>>n&&n){
        if(n%10==1&&n%100!=11)s1='s',s2='t';
        else if(n%10==2&&n%100!=12)s1='n',s2='d';
        else if(n%10==3&&n%100!=13)s1='r',s2='d';
        else s1='t',s2='h';
        printf("The %d%c%c humble number is %d.\n",n,s1,s2,dp[n]);
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 谦逊滚动(humble rolling)是一种谦虚而持续的努力,以实现个人成长和成功。这个概念强调与人为,不自满且不浮华,而是通过谦虚的态度和勤奋的工作,逐步取得进步和成就。 谦逊滚动表明,成功并非一蹴而就的结果,而是通过持续不断的努力来实现的。它倡导通过积累经验、学习和不断改进来持续进步。在这个过程中,个人需要保持谦虚的态度,不骄不躁,不因一时的成就而停步不前。 在谦逊滚动的理念中,人们应该珍惜并学会从失败和挫折中汲取力量。即使在取得一些成功后,他们也不会陷入自满的陷阱,而是以谦虚的姿态追求更高的目标。他们相信通过持续的努力和不断改进,可以取得更大的成就。 谦逊滚动还强调与人为的价值观,不追求表面上的光鲜和虚荣。相反,它鼓励个人专注于内心的成长和价值观的塑造。通过谦逊滚动,一个人可以培养出真正的谦逊和品格,这是持久成功的关键。 总而言之,谦逊滚动是一种谦虚和持续进步的理念,它强调不断努力和学习,以实现个人的成长和成功。通过谦虚的态度和勤奋的工作,人们可以不断取得进步,并以内心的成长和价值观的塑造为基础,实现持久的成功。 ### 回答2: humble rolling(谦逊滚动)是一种以谦虚为基础的生活方式或哲学观念。它强调人们应该保持谦虚、谦逊的态度,在生活中追求平衡、和谐和内外在的满足。 在这个快节奏和竞争激烈的社会中,许多人渴望寻求成功、名声和财富,常常忽略了谦虚和满足。然而,谦虚滚动告诉我们,成功并不是唯一的追求,而是要与谦逊和谦虚相结合。 谦虚滚动的重点是通过从内心开始,平衡自己的欲望和需求。它鼓励我们反思自己的目标、期望和价值观,并意识到自己的有限性和局限性。通过这种反思,我们可以更好地理解自己,接受自己,并对自己和他人保持谦虚的态度。 谦虚滚动还强调人与人之间的互相尊重和尊重他人的成就。它教导我们在与他人交往时要保持谦逊和谦卑的态度,不论对方的社会地位、经济状况或智力水平如何。通过尊重他人和欣赏他人的成功,我们可以建立互助合作和和谐的关系。 尽管谦虚滚动强调谦虚和满足,但它并不意味着我们应该停止追求进步和成就。而是要在追求的过程中保持谦虚,并珍惜和感激自己所拥有的一切。通过谦虚滚动,我们能够以更平衡和积极的态度面对挑战和困难,更加享受生活的美好。 总的来说,谦虚滚动是一种以谦虚为基础的生活方式,旨在帮助人们实现平衡、和谐和内外在的满足。通过反思自己的目标和价值观,尊重他人的成就和保持谦逊的态度,我们可以过上更加充实和有意义的生活。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值