primegen 3
NAME
primegen - enumerate small primes
SYNTAX
#include <primegen.h>
void primegen_init(&pg);
uint64 primegen_next(&pg);
uint64 primegen_peek(&pg);
uint64 primegen_count(&pg,bound);
void primegen_skipto(&pg,bound); struct primegen pg;
uint64 bound;
DESCRIPTION
The primegen library generates prime numbers in order:
2, 3, 5, 7, etc.
It can generate primes as large as 10^15.
The simplest way to use primegen
is to call
primegen_init and then call
primegen_next repeatedly.
The first call to
primegen_next will return 2;
the next call will return 3;
the next call will return 5;
and so on.
At each moment the next few primes to be returned by
primegen_next are buffered inside
pg . primegen_init initializes
pg with the first few primes,
starting at 2.
You must initialize
pg with
primegen_init before using
pg with any of the other
primegen routines.
You may call
primegen_init again to start over at 2.
primegen_next returns the next buffered prime
and removes that prime from
pg . primegen_peek returns the next buffered prime
but does not change
pg .
primegen_skipto discards all primes up to
bound . It has the same effect as
.EX
while (primegen_peek(&pg) < bound)
primegen_next(&pg);
primegen_count discards all primes up to
bound and returns the number of primes discarded.
You can set up several independent generators;
all primegen data is stored in
pg . Beware, however, that each struct primegen
uses quite a bit of memory.
"SEE ALSO"
primes(1),
primespeed(1)