Advanced primality testing algorithms including AKS
Project description
Primes - Advanced Primality Testing Algorithms
A Python library implementing state-of-the-art primality testing algorithms, starting with the AKS (Agrawal-Kayal-Saxena) primality test.
Overview
This repository contains implementations of various primality testing algorithms with a focus on theoretical significance and practical applications. The AKS primality test is the first deterministic polynomial-time algorithm for testing primality.
Features
- AKS Primality Test: First deterministic polynomial-time primality test
- Comprehensive Documentation: Detailed explanations of algorithms and mathematical foundations
- Performance Analysis: Benchmarking and complexity analysis
- Examples and Tutorials: Step-by-step examples demonstrating algorithm usage
Installation
pip install -e .
Quick Start
from primes.aks import AKSPrimalityTest
# Create an instance of the AKS test
aks = AKSPrimalityTest()
# Test if a number is prime
result = aks.is_prime(31)
print(f"31 is prime: {result}") # True
# Get detailed step-by-step execution
result_detailed = aks.is_prime_detailed(31)
print(result_detailed)
Algorithms Implemented
AKS Primality Test
- Time Complexity: O(log^6 n) (theoretical), optimized versions available
- Space Complexity: O(log^3 n)
- Deterministic: Yes
- Paper: PRIMES is in P
Project Structure
primes/
├── src/
│ └── primes/
│ ├── __init__.py
│ ├── aks/
│ │ ├── __init__.py
│ │ ├── core.py
│ │ └── optimizations.py
│ └── utils/
│ ├── __init__.py
│ ├── math_utils.py
│ └── polynomial.py
├── tests/
│ ├── __init__.py
│ ├── test_aks.py
│ └── test_utils.py
├── examples/
│ ├── basic_usage.py
│ ├── performance_comparison.py
│ └── step_by_step_aks.py
├── docs/
│ ├── algorithms/
│ │ └── aks.md
│ └── mathematical_foundations.md
├── benchmarks/
│ └── aks_benchmark.py
├── requirements.txt
├── setup.py
└── README.md
Contributing
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
License
This project is licensed under the MIT License - see the LICENSE file for details.
References
- Agrawal, M., Kayal, N., & Saxena, N. (2004). PRIMES is in P. Annals of Mathematics, 160(2), 781-793.
- AKS Primality Test - Wikipedia
Acknowledgments
- Inspired by the VaidhyaMegha/optimization_algorithms repository structure
- Mathematical foundations based on the original AKS paper
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file number_theory_primes-0.1.2.tar.gz.
File metadata
- Download URL: number_theory_primes-0.1.2.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a467c393ae8e6280e122fb864ea616991a68273279230b372c2c59fee589647d
|
|
| MD5 |
e4b5b159df761f7cc675532a33cbca1a
|
|
| BLAKE2b-256 |
aecc60c2b12c36deac36fac77cb60710e587a2878129886c0964bf0dde941848
|
File details
Details for the file number_theory_primes-0.1.2-py3-none-any.whl.
File metadata
- Download URL: number_theory_primes-0.1.2-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab03a132d9d6fa948d8185dbbcdd3aeb96f75a1cb1f8ebe837e9b53bd8f019ff
|
|
| MD5 |
72dc8aa11961f13aa3e372efe0dd1254
|
|
| BLAKE2b-256 |
ba7ae3a34bb636fa8fdbea078c92f4a255239686832e2b3dbe17d952dcc66038
|