35 lines
980 B
Text
35 lines
980 B
Text
sub digit_sum(n, sum)
|
|
// devuelve la suma de los dígitos de n dada la suma de los dígitos de n - 1
|
|
sum = sum + 1
|
|
while n > 0 and (mod(n, 10) = 0)
|
|
sum = sum - 9
|
|
n = int(n / 10)
|
|
end while
|
|
return sum
|
|
end sub
|
|
|
|
sub divisible(n, d)
|
|
if mod(d, 1) = 0 and mod(n, 1) = 1 then return 0 else return (mod(n, d) = 0) : endif
|
|
end sub
|
|
|
|
gap_index = 0
|
|
previous = 1
|
|
print "Gap index Gap Niven index Niven number"
|
|
print "--------- --- ----------- ------------"
|
|
|
|
for niven = 1 to 100000000
|
|
sum = digit_sum(niven,sum)
|
|
if divisible(niven, sum) then
|
|
if (niven > previous + gap) then
|
|
gap_index = gap_index + 1
|
|
gap = niven - previous
|
|
print gap_index using "#########";
|
|
print gap using "###";
|
|
print niven_index using "###,###,###";
|
|
print previous using "####,###,###"
|
|
endif
|
|
previous = niven
|
|
niven_index = niven_index + 1
|
|
endif
|
|
next niven
|
|
end
|