Skip to main content

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

  1. Agrawal, M., Kayal, N., & Saxena, N. (2004). PRIMES is in P. Annals of Mathematics, 160(2), 781-793.
  2. AKS Primality Test - Wikipedia

Acknowledgments

  • Inspired by the VaidhyaMegha/optimization_algorithms repository structure
  • Mathematical foundations based on the original AKS paper

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

number_theory_primes-0.1.2.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

number_theory_primes-0.1.2-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

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

Hashes for number_theory_primes-0.1.2.tar.gz
Algorithm Hash digest
SHA256 a467c393ae8e6280e122fb864ea616991a68273279230b372c2c59fee589647d
MD5 e4b5b159df761f7cc675532a33cbca1a
BLAKE2b-256 aecc60c2b12c36deac36fac77cb60710e587a2878129886c0964bf0dde941848

See more details on using hashes here.

File details

Details for the file number_theory_primes-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for number_theory_primes-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ab03a132d9d6fa948d8185dbbcdd3aeb96f75a1cb1f8ebe837e9b53bd8f019ff
MD5 72dc8aa11961f13aa3e372efe0dd1254
BLAKE2b-256 ba7ae3a34bb636fa8fdbea078c92f4a255239686832e2b3dbe17d952dcc66038

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page