Arbitrary precision integers in factor
This commit is contained in:
parent
083fe00372
commit
530e740de0
2 changed files with 9 additions and 6 deletions
14
factor.nim
14
factor.nim
|
|
@ -1,19 +1,21 @@
|
|||
import cligen, sequtils
|
||||
import cligen, sequtils, stint
|
||||
import common
|
||||
|
||||
proc factor(num:int):seq[int] =
|
||||
proc factor(num:StUint[64]):seq[StUint[64]] =
|
||||
result = @[]
|
||||
var i = num
|
||||
while i > 1:
|
||||
for x in 2..i:
|
||||
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(integers:seq[int]) =
|
||||
for number in integers:
|
||||
proc main(numbers:seq[string]) =
|
||||
for number in numbers:
|
||||
echo number, ": ",
|
||||
map(factor(number), proc(x:int):string = $x & " ").foldl(a & b)
|
||||
map(factor(number.parse(StUint[64])), proc(x:StUint[64]):string = $x & " ").foldl(a & b)
|
||||
|
||||
dispatch(main)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue