Gapful numbers: Difference between revisions

(Gapful numbers en BASIC256)
Line 1,499:
The first 10 gapful numbers beyond 999999999 are:
1000000000, 1000000001, 1000000005, 1000000008, 1000000010, 1000000016, 1000000020, 1000000027, 1000000030, 1000000032</pre>
 
=={{header|Nim}}==
<lang Nim>import strutils
 
 
func gapfulDivisor(n: Positive): Positive =
## Return the gapful divisor of "n".
let last = n mod 10
var first = n div 10
while first > 9:
first = first div 10
result = 10 * first + last
 
 
iterator gapful(start: Positive): Positive =
## Yield the gapful numbers starting from "start".
var n = start
while true:
let d = n.gapfulDivisor()
if n mod d == 0: yield n
inc n
 
 
proc displayGapfulNumbers(start, num: Positive) =
## Display the first "num" gapful numbers greater or equal to "start".
echo "\nFirst $1 gapful numbers ⩾ $2:".format(num, start)
var count = 0
var line: string
for n in gapful(start):
line.addSep(" ")
line.add($n)
inc count
if count == num: break
echo line
 
 
when isMainModule:
displayGapfulNumbers(100, 30)
displayGapfulNumbers(1_000_000, 15)
displayGapfulNumbers(1_000_000_000, 10)</lang>
 
{{out}}
<pre>
First 30 gapful numbers ⩾ 100:
100 105 108 110 120 121 130 132 135 140 143 150 154 160 165 170 176 180 187 190 192 195 198 200 220 225 231 240 242 253
 
First 15 gapful numbers ⩾ 1000000:
1000000 1000005 1000008 1000010 1000016 1000020 1000021 1000030 1000032 1000034 1000035 1000040 1000050 1000060 1000065
 
First 10 gapful numbers ⩾ 1000000000:
1000000000 1000000001 1000000005 1000000008 1000000010 1000000016 1000000020 1000000027 1000000030 1000000032</pre>
 
=={{header|Pascal}}==
Anonymous user