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


var [const] BI=Import("zklBigNum");  // libGMP
var one   = BI(1), two   = BI(2), three = BI(3), 
    five  = BI(5), seven = BI(7);
 
fcn humble(n){	// --> List of BigInt Humble numbers
   h:=List.createLong(n);  h.append(one);
   next2,next3 := two.copy(),  three.copy();
   next5,next7 := five.copy(), seven.copy();
   reg i=0,j=0,k=0,l=0;
   do(n-1){
      h.append( hm:=BI(next2.min(next3.min(next5.min(next7)))) );
      if(hm==next2) next2.set(two)  .mul(h[i+=1]);
      if(hm==next3) next3.set(three).mul(h[j+=1]);
      if(hm==next5) next5.set(five) .mul(h[k+=1]);
      if(hm==next7) next7.set(seven).mul(h[l+=1]);
   }
   h
}