Humble numbers are positive integers which have   no   prime factors    >    7.



Humble numbers are also called   7-smooth numbers,   and sometimes called   highly composite,

although this conflicts with another meaning of   highly composite numbers.



Another way to express the above is:

  humble  =  2i × 3j × 5k × 7m 

           where     i, j, k, m ≥ 0 



Task

   show the first   50   humble numbers   (in a horizontal list)
   show the number of humble numbers that have   x   decimal digits for all   x's   up to   n   (inclusive).
   show   (as many as feasible or reasonable for above)   on separate lines
   show all output here on this page


Related tasks

   Hamming numbers


References

   Wikipedia: Smooth numbers, see the 2nd paragraph.
   OEIS A002473: humble numbers
   University of Ulm, The first 5842 terms of humble numbers


 
# syntax: GAWK -f HUMBLE_NUMBERS.AWK
#
# sorting:
#   PROCINFO["sorted_in"] is used by GAWK
#   SORTTYPE is used by Thompson Automation's TAWK
#
BEGIN {
    PROCINFO["sorted_in"] = "@ind_num_asc" ; SORTTYPE = 1
    n = 1
    for (; count<5193; n++) {
      if (is_humble(n)) {
        arr[length(n)]++
        if (count++ < 50) {
          printf("%d ",n)
        }
      }
    }
    printf("\nCount Digits of the first %d humble numbers:\n",count)
    for (i in arr) {
      printf("%5d %6d\n",arr[i],i)
    }
    exit(0)
}
function is_humble(i) {
    if (i <= 1) { return(1) }
    if (i % 2 == 0) { return(is_humble(i/2)) }
    if (i % 3 == 0) { return(is_humble(i/3)) }
    if (i % 5 == 0) { return(is_humble(i/5)) }
    if (i % 7 == 0) { return(is_humble(i/7)) }
    return(0)
}
 