mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 01:44:37 +00:00
37 lines
664 B
Nim
37 lines
664 B
Nim
discard """
|
|
output: '''@[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 18, 20, 21, 24, 27, 30, 36, 40, 42]
|
|
1002'''
|
|
"""
|
|
|
|
import strutils
|
|
|
|
proc slice[T](iter: iterator(): T {.closure.}, sl: auto): seq[T] =
|
|
var res: seq[int64] = @[]
|
|
var i = 0
|
|
for n in iter():
|
|
if i > sl.b:
|
|
break
|
|
if i >= sl.a:
|
|
res.add(n)
|
|
inc i
|
|
res
|
|
|
|
iterator harshad(): int64 {.closure.} =
|
|
for n in 1 .. < int64.high:
|
|
var sum = 0
|
|
for ch in string($n):
|
|
sum += parseInt("" & ch)
|
|
if n mod sum == 0:
|
|
yield n
|
|
|
|
echo harshad.slice 0 .. <20
|
|
|
|
for n in harshad():
|
|
if n > 1000:
|
|
echo n
|
|
break
|
|
|
|
|
|
# bug #3499 last snippet fixed
|
|
# bug 705 last snippet fixed
|