aks primality test algebraic number field algorithm algorithmic efficiency ancient egyptian multiplication aryabhata algorithm baillie-psw primality test big o notation binary gcd algorithm chakravala method computational complexity theory continued fraction factorization cunningham project deterministic algorithm distributed computing elliptic curve primality proving euclidean algorithm extended euclidean algorithm fermat primality test fibonacci number general number field sieve heuristic integer factorization integer factorization records integer relation algorithm integer square root irreducible polynomial l-notation lenstra elliptic curve factorization linear algebra lucas number mod modular exponentiation nfsnet number theory primality test quadratic sieve rational sieve ring homomorphism shanks-tonelli algorithm sieve of atkin sieve of eratosthenes sieve of sundaram smooth number trial division unique factorization domain wheel factorization