To allow for maximum performance, module prime_lgc
provides unsafe
public
(not exported) predicates that user code can call directly instead
of calling the safe predicates exported by module prime
.
For info on the implementation, see library(nan_numerics_prime)
.
NOTE: Predicates in this module are unsafe, i.e. do not validate input
arguments and are not steadfast.
- author
- - Julio P. Di Egidio
- version
- - 1.2.5-beta
- See also
- -
library(nan_numerics_prime)
- copyright
- - 2016 Julio P. Di Egidio
- license
- - GNU GPLv3
- To be done
- - Integrate
isqrt
function from GMP?
- test_(+N:posint) is semidet
- True if N is a prime number.
- div_(+N:posint, -P:prime) is semidet
- True if N is a composite number with P its smallest prime divisor.
- div_rev_(+N:posint, -P:prime) is semidet
- True if N is a composite number with P its greatest prime divisor.
- fact_(+N:posint, -PFs:list(pfact)) is det
- PFs is the list of all prime factors of N in ascending order of the
prime divisors.
Elements of PFs are of the form P^F
with P the prime divisor and
F the corresponding power.
If N is equal to 1
or if N is a prime number, PFs is [N^1]
.
- gen_(+Inf:posint, -P:prime) is multi
- gen_(+Inf:posint, +Sup:posint, -P:prime) is nondet
- Generates in ascending order all prime numbers P greater than or
equal to Inf, and less than or equal to Sup in the variant with arity
3
. Fails if the prime to the left of Sup is less than the prime to
the right of Inf.
- gen_p_(+L:prime, -P:prime) is multi
- gen_p_(+L:prime, +H:prime, -P:prime) is nondet
- Generates in ascending order all prime numbers P starting from L, and
up to H in the variant with arity
3
. Fails if H is less than L.
- gen_rev_(+Sup:prime, -P:prime) is nondet
- gen_rev_(+Inf:posint, +Sup:posint, -P:prime) is nondet
- Generates in descending order all prime numbers P less than or equal
to Sup, and greater than or equal to Inf in the variant with arity
3
.
Fails if Sup is equal to 1
or if the prime to the left of Sup is less
than the prime to the right of Inf.
- gen_rev_p_(+H:prime, -P:prime) is multi
- gen_rev_p_(+L:prime, +H:prime, -P:prime) is nondet
- Generates in descending order all prime numbers P starting from H,
and down to L in the variant with arity
3
. Fails if H is less than
L.
- next_(+N:posint, -P:prime) is det
- P is the smallest prime number greater than N.
- next_p_(+P0:prime, -P:prime) is det
- P is the smallest prime number greater than P0.
- prev_(+N:posint, -P:prime) is semidet
- P is the greatest prime number less than N. Fails if N is less than or
equal to
2
.
- prev_p_(+P0:prime, -P:prime) is semidet
- P is the greatest prime number less than P0. Fails if P is equal to
2
.
- right_(+N:posint, -P:prime) is det
- P is the smallest prime number greater than or equal to N.
- left_(+N:posint, -P:prime) is semidet
- P is the greatest prime number less than or equal to N. Fails if N is
equal to
1
.