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