commit 94f2e5f

Artur Manuel  ·  2026-05-24 00:28:08 +0000 UTC
parent caf46e3
nim: add nim
3 files changed,  +40, -0
+5, -0
1@@ -0,0 +1,5 @@
2+/**
3+!/.gitignore
4+!/*.nimble
5+!/src
6+!/src/**.nim
+13, -0
 1@@ -0,0 +1,13 @@
 2+# Package
 3+
 4+version       = "2025.5.0"
 5+author        = "Artur Manuel"
 6+description   = "A new awesome nimble package"
 7+license       = "EUPL-1.2"
 8+srcDir        = "src"
 9+bin           = @["rosetta_collatz"]
10+
11+
12+# Dependencies
13+
14+requires "nim >= 2.2.4"
+22, -0
 1@@ -0,0 +1,22 @@
 2+import std/strformat
 3+
 4+func collatz(n: int64): int64 =
 5+  return if n mod 2 == 0:
 6+    n div 2
 7+  else:
 8+    3 * n + 1
 9+
10+proc collatzSequence(n: int64): string =
11+  result = fmt"{n}: "
12+  var i = collatz(n)
13+  while i != 1:
14+    result &= fmt"{i}, "
15+    i = collatz(i)
16+  result &= "1"
17+
18+proc main() =
19+  for i in 1 .. 10000:
20+    echo collatzSequence(i)
21+
22+when isMainModule:
23+  main()