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


F is_humble(i)
   I i <= 1
      R 1B
   I i % 2 == 0 {R is_humble(i I/ 2)}
   I i % 3 == 0 {R is_humble(i I/ 3)}
   I i % 5 == 0 {R is_humble(i I/ 5)}
   I i % 7 == 0 {R is_humble(i I/ 7)}
   R 0B
 
DefaultDict[Int, Int] humble
V limit = 7F'FF
V count = 0
V num = 1
 
L count < limit
   I is_humble(num)
      humble[String(num).len]++
      I count < 50
         print(num, end' ‘ ’)
      count++
   num++
 
print()
print()
print(‘Of the first ’count‘ humble numbers:’)
 
L(num) 1 .< humble.len - 1
   I num !C humble
      L.break
   print(‘#5 have #. digits’.format(humble[num], num))