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()