Moved (VERY incomplete) primefac reimplementation

This commit is contained in:
Emile Clark-Boman 2025-07-06 21:40:03 +10:00
parent 87917f9526
commit fa60bc5dd7
2 changed files with 16 additions and 0 deletions

6
README-primefac Normal file
View file

@ -0,0 +1,6 @@
`primefac-nim` is a translation of Lucas A. Brown's [primefac project](https://github.com/lucasaugustus/primefac)
into Nim. Why? 1. I like his work and wanted it in Nim, 2. I'm trying to learn number theory.
Some functions are not verbatim translation, and will be marked as such.
This allows me to implement my own optimisations, such as using
the Sieve of Atkins for prime generation rather than the Sieve of Eratosthenes.

10
primegen.nim Normal file
View file

@ -0,0 +1,10 @@
iterator primegen(limit: int = high(BiggestInt)): int:
"""
Generates primes < limit almost lazily by a segmented sieve of Eratosthenes.
Examples:
>>> primegen().take(20)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71]
>>> primegen(73).toSeq()
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71]
"""