RosettaCodeData/Task/Increasing-gaps-between-consecutive-Niven-numbers/Yabasic/increasing-gaps-between-consecutive-niven-numbers.basic
2023-07-01 13:44:08 -04:00

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