37 lines
1 KiB
Text
37 lines
1 KiB
Text
Function digit_sum(n As Uinteger, sum As Ulong) As Ulong
|
|
' devuelve la suma de los dígitos de n dada la suma de los dígitos de n - 1
|
|
sum += 1
|
|
While (n > 0 And n Mod 10 = 0)
|
|
sum -= 9
|
|
n = Int(n / 10)
|
|
Wend
|
|
Return sum
|
|
End Function
|
|
|
|
Function divisible(n As Uinteger, d As Uinteger) As Boolean
|
|
If ((d Mod 1) = 0) And ((n Mod 1) = 1) Then
|
|
Return 0
|
|
End If
|
|
Return (n Mod d = 0)
|
|
End Function
|
|
|
|
Dim As Ulong gap_index = 0
|
|
Dim As Ulong previous = 1
|
|
Dim As Uinteger gap
|
|
Dim As Ulong niven_index
|
|
Print "Gap index Gap Niven index Niven number"
|
|
Print "--------- --- ----------- ------------"
|
|
|
|
For niven As Uinteger = 1 To 100000000
|
|
Dim As Ulong sum = digit_sum(niven,sum)
|
|
If divisible(niven, sum) Then
|
|
If (niven > previous + gap) Then
|
|
gap_index += 1
|
|
gap = niven - previous
|
|
Print Using "######### ### ###,###,### ####,###,###"; gap_index; gap; niven_index; previous
|
|
End If
|
|
previous = niven
|
|
niven_index += 1
|
|
End If
|
|
Next niven
|
|
Sleep
|