TheAlgorithms-C-Plus-Plus/math
Taj a48d05fb62
feat: Added a probabilistic Miller-Rabin Primality Test (#845)
* feat: Added a probabilitic Miller-Rabin Primality test

* docs: Documentation Changes

* fix: Issue with the assert call

* docs: grammatical error

* docs: corrected the copyright comment

* docs: Fixed some documentation issues.

* docs: fix latex issues

* docs and fix: Fixed documentation issues and vector by const reference and iterator over const reference.

* docs: fixed latex documentation issue.

* docs: spelling errors

* docs: spelling error fixed
2020-06-21 23:10:57 +05:30
..
binary_exponent.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
check_prime.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
CMakeLists.txt Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
double_factorial.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
eulers_totient_function.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
extended_euclid_algorithm.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
factorial.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
fast_power.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
fibonacci_fast.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
fibonacci_large.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
fibonacci.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
gcd_iterative_euclidean.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
gcd_of_n_numbers.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
gcd_recursive_euclidean.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
large_factorial.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
large_number.h Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
least_common_multiple.cpp feat: Added a function for finding the least common multiple (#840) 2020-06-13 04:17:32 +05:30
miller_rabin.cpp feat: Added a probabilistic Miller-Rabin Primality Test (#845) 2020-06-21 23:10:57 +05:30
modular_inverse_fermat_little_theorem.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
number_of_positive_divisors.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
power_for_huge_numbers.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
prime_factorization.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
prime_numbers.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
primes_up_to_billion.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
README.md Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
realtime_stats.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
sieve_of_eratosthenes.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
sqrt_double.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30
string_fibonacci.cpp Major rework to improve code quality and add automation checks (#805) 2020-06-19 21:34:56 +05:30

Prime factorization

Prime Factorization is a very important and useful technique to factorize any number into its prime factors. It has various applications in the field of number theory.

The method of prime factorization involves two function calls. First: Calculating all the prime number up till a certain range using the standard Sieve of Eratosthenes.

Second: Using the prime numbers to reduce the the given number and thus find all its prime factors.

The complexity of the solution involves approx. O(n logn) in calculating sieve of eratosthenes O(log n) in calculating the prime factors of the number. So in total approx. O(n logn).

Requirements: For compile you need the compiler flag for C++ 11