Humble numbers: Difference between revisions

Content added Content deleted
(→‎Fast and economical: improve space management)
(Humble numbers en FreeBASIC)
Line 2,367: Line 2,367:
Running time: 335.1803624581294 seconds
Running time: 335.1803624581294 seconds
</pre>
</pre>


=={{header|FreeBASIC}}==
{{trans|Visual Basic .NET}}
<lang freebasic>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</lang>
{{out}}
<pre>Los 50 primeros números de Humble son:
1 2 3 4 5 6 7 8 9 10
12 14 15 16 18 20 21 24 25 27
28 30 32 35 36 40 42 45 48 49
50 54 56 60 63 64 70 72 75 80
81 84 90 96 98 100 105 108 112 120

De los primeros 7574 números de Humble:
9 tienen 1 digitos
36 tienen 2 digitos
95 tienen 3 digitos
197 tienen 4 digitos
356 tienen 5 digitos
579 tienen 6 digitos
882 tienen 7 digitos
1272 tienen 8 digitos
1767 tienen 9 digitos
2381 tienen 10 digitos</pre>



=={{header|Go}}==
=={{header|Go}}==