Primality helps you easily find, test and work with prime numbers in Python.
primality.is_prime(516349073509121311)
>> True
primality.nth_prime(9999)
>> 104729
primality.prange(10)
>> [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
primality.between(10,19)
>> [11, 13, 17, 19]
primality.next_prime(3)
>> 5
primality.prev_prime(1000)
>> 997
primality.rand_prime(10, 50, RandomStrategy.RANDOM_LIB)
>> 17
Use the package manager pip to install Primality.
pip install primality
Primality officially supports Python 3.8+.
from primality import primality
For usage documentation and examples, please check out our wiki and docs.
The current version uses the Miller primality test(1) with known strong pseudoprime bases(2) to provide deterministic testing for integers between 2 and 264 - 1(3). For more details, please read THEORY.md
-
Miller, G. (1976), "Riemann's Hypothesis and Tests for Primality", Journal of Computer and System Sciences.
-
Zhang, Z and Tang, M. (2003), "Finding strong pseudoprimes to several bases. II", Mathematics of Computation.
-
McCraine, J. (1997), "Sequence A014233 (Smallest odd number for which Miller-Rabin primality test on bases <= n-th prime does not reveal compositeness)". The On-Line Encyclopedia of Integer Sequences, OEIS Foundation.
Contributions are welcome. Please remember to read CONTRIBUTING.md if it's your first time interacting with this project.