Welcome to the Primality Research Repository! This repository contains research on primality testing algorithms, which are used to determine whether a given number is a prime number.
In this repository, we delve into various types of primality testing algorithms, including:
- Brute Force: This algorithm checks whether a number is divisible by any number less than itself. While simple, it can be inefficient for large numbers.
- Trial Division: Similar to the brute force method, trial division checks for divisibility up to the square root of the number being tested. It provides a slight optimization over the brute force algorithm.
- Fermat Primality Test: This probabilistic algorithm uses Fermat's Little Theorem to test for primality. It relies on randomly selected witnesses to provide a probabilistic determination of primality.
- Miller-Rabin Primality Test: Another probabilistic algorithm, Miller-Rabin test uses a similar approach as the Fermat test but employs multiple witnesses to improve accuracy.
- Deterministic Primality Tests: These algorithms guarantee a definitive answer for primality. Examples include the AKS primality test and the Elliptic Curve Primality Proving (ECPP) algorithm.
Here are some tasks you can consider adding to your to-do list for further research and improvement:
- Implement and analyze the performance of additional primality testing algorithms.
- Explore and experiment with parallelized versions of existing algorithms to leverage the power of multi-core processors.
- Investigate the impact of various number representations (e.g., binary, decimal, etc.) on the efficiency of primality testing algorithms.
- Research recent developments and advancements in primality testing, such as the use of machine learning or quantum algorithms.
- Create benchmarking tests and comparisons to evaluate the relative performance of different algorithms.
- Document and publish your findings and discoveries in the field of primality research.
Feel free to contribute to this repository by adding your own research, algorithms, or improvements!
Please customize the algorithms section and the to-do list based on the specific research you have conducted or plan to undertake.
- Implement isprime() with 6x+y for faster calculation
- Implement isprime() with nx+y for faster calculation
- Implement isprime() with non bruteforce method
- Implement allprime()