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}}== |