幽默数

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.

//幽默数, 数字的质数只包括2,3,5,7;
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.

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 int main()
 5 {
 6     int x1, x2, x3, x4;
 7     int ac[6000], i, n, j, k, a, b, c, d, min;
 8     ac[1] = 1;
 9     a = b = c = d = 1;
10     for(i = 2; i < 5900; i++)
11     {
12       x1 = ac[a] * 2;
13       x2 = ac[b] * 3;
14       x3 = ac[c] * 5;
15       x4 = ac[d] * 7;
16       min = x1;
17       if(min > x2)min = x2;
18       if(min > x3)min = x3;
19       if(min > x4)min = x4;
20       ac[i] = min;
21       if(min == x1)a++;
22       if(min == x2)b++;
23       if(min == x3)c++;
24       if(min == x4)d++;
25     }
26     while(scanf("%d", &n), n)
27     {
28         if(n%10 == 1 && n%100 != 11)
29              printf("The %dst humble number is %d.\n", n, ac[n]);
30         else if(n%10 == 2 && n%100 != 12)
31              printf("The %dnd humble number is %d.\n", n, ac[n]);
32         else if(n%10 == 3 && n%100 != 13)
33              printf("The %drd humble number is %d.\n", n, ac[n]);
34         else
35              printf("The %dth humble number is %d.\n", n, ac[n]);
36     }
37     return 0;
38 }
时间: 2024-08-03 13:05:51

幽默数的相关文章

程序员的幽默

真的是这样么. 1.小学入学第一天 我对老师说会背301首唐诗做100以内加减法,口齿清晰条理清楚,老师对我眉开眼笑: 张二狗对老师的提问一问摇头三不知,神情呆滞语无伦次,老师对他暗暗皱眉. 2.小学二年级 我考试次次第一,终于在一次满分后肩膀上多了三条杠杠: 张二狗和人打架有赢有输,终于在一次大败后脸上多了三条疤疤. 3.小学三年级 期末考试我再次拿到语文数学两门功课双一百,老爸被老师请到家长会上介绍家庭教育经验: 期末考试张二狗再次拿到语文数学两门功课总分三十,老爸被老师请进办公室聆听家庭教

克服VR眩晕之帧数 提升UE4内容实时渲染效率

克服VR眩晕之帧数:提升UE4内容实时渲染效率 Li Wen Lei, HuNing 在 2015/10/29 23:00:31 | 新闻 Share on Facebook Share on Twitter Share on Google+ Share on LinkedIn VR已经成为了当今最火热的一个话题,带上头盔之后,从此进入一个奇妙的世界,在这里你不再是观众,你参与这个世界发生的每一件事件.整个世界从此与众不同.在赛道上飞驰,在战场上纵横     但是生理机制让我们的大脑在身体并没有

如何调整WEBLOGIC 11G 线程数

在网上查到两到方法: 第一方法:直接在启动命令里加上. -Dweblogic.threadpool.MinPoolSize=800 -Dweblogic.threadpool.MaxPoolSize=800 我是在setDomainEnv.sh 里的JAVA_OPTIONS中加的我公司机子上测试可以通过 第二方法:直接在配置文件中加上 1,在CONFIG.XML中的 <server> <name>Adminserver</name> <self-tuning-th

数学家吴文俊批判 中国式奥数 害人害数学

奥数震动了两位最高科技奖得主 一谈起“奥数”,国内当今数学界的泰斗级人物吴文俊院士就急了. 他在沙发上挺直了腰,瞪大眼睛,伸出手掌指指点点:“是害人的,害数学!” “什么奥林匹克?没这回事!” 这位获得过国家最高科技奖的老数学家摆摆手:“奥林匹克数学竞赛不值得讲——胡闹了,走上邪路了,非但起不到正面作用,反而起到反面作用.” 这是93岁的吴文俊少有的严肃的一面.在数学界他以“老顽童”著称.他已许久没有公开露面.对于“具体的知识”,他形容自己已经知之甚少. 接受采访时,他对中国青年报记者声称,自己

熟读高数才能理解机器学习?不,初中数学就够了

导读 谁说理解机器学习必须要熟读高数? 近日,数据科学Kyle在Medium发布博客表示,理解机器学习在做的事情,有初中数学知识足矣. 这篇博客简洁易懂.幽默风趣,在Medium上几天内获得600多赞.量子位将文章翻译整理如下,与大家分享: 当下理解我们人工智能的方式通常比较极端,要么通过媒体,越来越耸人听闻的观点让人难以想象.要么通过文献,充满晦涩语言和特定术语的论文让人难以理解. 理解AI的正确姿势应该在两个极端之间,这就需要你在新闻或文献之外理性判断,对于一般人来说,至少应该知道AI是什么

两个常见位操作面试题 不用加减乘除运算符计算两数之和及a b 3

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net <两个常见位操作面试题不用加减乘除运算符计算两数之和及a=b*3> 地址:http://blog.csdn.net/morewindows/article/details/8710737转载请标明出处,谢谢. 欢迎关注微博:http://weibo.com/MoreWindows 上一篇<位操作基础篇之位操作全面总结>

【noip2003】 麦森数

题目描述 形如2P-1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果P是个素数,2P-1不一定也是素数.到1998年底,人们已找到了37个麦森数.最大的一个是P=3021377,它有909526位.麦森数有许多重要应用,它与完全数密切相关. 任务:从文件中输入P(1000<P<3100000),计算2P-1的位数和最后500位数字(用十进制高精度数表示) 输入 文件中只包含一个整数P(1000<P<3100000) 输出 第一行:十进制高精度数2P-1的位数. 第2

CCF - 201409-1 - 相邻数对

问题描述 试题编号: 201409-1 试题名称: 相邻数对 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 输入的第一行包含一个整数n,表示给定整数的个数. 第二行包含所给定的n个整数. 输出格式 输出一个整数,表示值正好相差1的数对的个数. 样例输入 610 2 6 3 7 8 样例输出 3 样例说明 值正好相差1的数对包括(2, 3), (6, 7), (7, 8). 评测用例规模与约定 1

java实现求一个数组里最大值和最小值之前缺省的数的算法

问题描述: 求一个数组里最大值和最小值之间缺省的数,例如 int arrDemo = {1, 3, 7};  那么就要输出最小值1和最大值7之间缺少的数字2,4,5,6 代码如下,有更好的思路欢迎大家在评论区留言讨论 1 package test; 2 3 public class Test { 4 5 static int[] array = { 6 -10,0,3,3,9 7 }; 8 9 private static void printEmptyItems(int[] array) {