惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
爱范儿
爱范儿
GbyAI
GbyAI
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
云风的 BLOG
云风的 BLOG
C
Check Point Blog
H
Help Net Security
P
Proofpoint News Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog RSS Feed
Y
Y Combinator Blog
U
Unit 42
T
Tailwind CSS Blog
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
S
SegmentFault 最新的问题
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - saintqdd

hdu 1102 pku 2421 解题报告 pku 2777 Count Color 解体报告 石子合并问题 nkoj1139和乘积最大那题一样. A Tour in Loquat Orchard (FZU 2007 ICPC Qualification Round I tzw) 最大黑区域 滑雪 今天碰到了一个很诡异的题,Alphacode (zoj 2202) 这两天经常碰到dp题,就写了一个0-1背包 实训以来,到这里的次数少了! 郁闷,乘积最大那题WA原来只是因为我用了pow函数引起的! Smith Number POJ强烈推荐50题 JOJ 2391 words POJ 1014 三十分钟掌握STL STL学习小记 POJ1006,中国剩余定理 POJ1003,简单题
一道经典题,humble number
saintqdd · 2007-08-30 · via 博客园 - saintqdd

相信大家都知道什么是humble number.但我还是简短介绍一下,假设一个质数集合{2,3,5,7...},求一个整数列,他们的共同属性是所有的因子都是那个质数集合里的。现在问题是求给定的第N个这样的整数。如果质数只有3个或4个那么简单的搜索可能就行了,但是当数量很多时就会很耗时,所以可采用下面的方法。

#include<stdio.h>
int main(){
  int h[5842];//表示所求的整数的个数
  int pindex[4]={0};//质数索引
  int prim[4]={2,3,5,7};//质数数组
  int i,j,min;
  h[0]=1;
  for(i=1;i<5842;i++){
    j=0;
    while(j<4){
      if(h[pindex[j]]*prim[j]<=h[i-1])
        pindex[j]++;
      j++;
    }
    min=2000000001;
    for(j=0;j<4;j++){
      if(h[pindex[j]]*prim[j]<min)
        min=h[pindex[j]]*prim[j];
    }
    h[i]=min;
  }
  int n;
  while(scanf("%d",&n)&&n!=0){
    if(n%10==1&&n%100!=11)
      printf("The %dst humble number is %d."n",n,h[n-1]);
    else if(n%10==2&&n%100!=12)
      printf("The %dnd humble number is %d."n",n,h[n-1]);
    else if(n%10==3&&n%100!=13)
      printf("The %drd humble number is %d."n",n,h[n-1]);
    else
      printf("The %dth humble number is %d."n",n,h[n-1]);
  }
}