随笔-65  评论-6  文章-0  trackbacks-0
 1 /*
 2 Author:    Leo.W
 3 Descriptipn:寻找质因数仅为2、3、5、7其中若干的正整数    
 4 How to Do:    动态规划,由2、3、5、7开始依次叠増;
 5   */
 6 #include <stdio.h>
 7 #include <string.h>
 8 int num[5900];
 9 inline int min(int a,int b){
10     if(a<b)    return a;
11     return b;
12 }
13 int main(){
14     //freopen("in.txt","r",stdin);
15     int i,t=1,p2=1,p3=1,p5=1,p7=1;//表示当前递增依次为2、3、5、7
16     char ch[5][3]={"th","st","nd","rd"};
17     for(i=1;i<=5842;i++){
18         num[i]=t;
19         t=min(min(num[p2]*2,num[p3]*3),min(num[p5]*5,num[p7]*7));
20         if(t==num[p2]*2)
21             p2++;
22         if(t==num[p3]*3)
23             p3++;
24         if(t==num[p5]*5)
25             p5++;
26         if(t==num[p7]*7)
27             p7++;
28     }
29     while(scanf("%d",&t),t){
30         i=0;
31         if(t%100!=11&&t%10==1)
32             i=1;
33         if(t%100!=12&&t%10==2)
34             i=2;
35         if(t%100!=13&&t%10==3)
36             i=3;
37         printf("The %d%s humble number is %d.\n",t,ch[i],num[t]);
38 
39     }
40     return 0; 
41 }
posted on 2012-03-07 14:55 Leo.W 阅读(191) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理