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


Function IsHumble(i As Integer) As Boolean
    If i <= 1 Then Return True
    If i Mod 2 = 0 Then Return IsHumble(i \ 2)
    If i Mod 3 = 0 Then Return IsHumble(i \ 3)
    If i Mod 5 = 0 Then Return IsHumble(i \ 5)
    If i Mod 7 = 0 Then Return IsHumble(i \ 7)
    Return False
End Function
 
Const limiteMax = 7574
Dim As Integer humble(10) 'As New Dictionary(Of Integer, Integer)
Dim As Integer cont = 0, num = 1
 
Print "Los 50 primeros n£meros de Humble son:";
While cont < limiteMax
    If IsHumble(num) Then
        Dim As Integer longitud = Len(Str(num))
        If longitud > 10 Then
            Exit While
        End If
        If humble(longitud) Then
            humble(longitud) += 1
        Else
            humble(longitud) = 1
        End If
        If cont < 50 Then 
            If cont Mod 10 = 0 Then Print
            Print Using " ###"; num;
        End If
        cont += 1
    End If
    num += 1
Wend
 
Print !"\n\nDe los primeros"; cont; " n£meros de Humble:"
num = 1
While num < cont
    If humble(num) Then
        Print Using " #### tienen ## digitos"; humble(num); num
        num += 1
    Else
        Exit While
    End If
Wend