nimbase/factor.nim
2019-03-11 19:49:36 +01:00

21 lines
544 B
Nim

import cligen, sequtils, stint
import common
proc factor(num:StUint[64]):seq[StUint[64]] =
result = @[]
var i = num
while i > 1:
var x = 2.stuint(64)
while x <= i:
if i mod x == 0:
result.add(x)
i = i div x
break
else: x += 1.stuint(64)
proc main(numbers:seq[string]) =
for number in numbers:
echo number, ": ",
map(factor(number.parse(StUint[64])), proc(x:StUint[64]):string = $x & " ").foldl(a & b)
dispatch(main)