its computers
notebook
numth

NumTh

NumTh is a Number Theory library developed in Python 3. It is still a work in progress, with more features and tests being added regularly. Check out some interesting number facts generated by the library!

interesting numbers

Some of the features include:

  • Euclidean algorithm
  • Bezout's Lemma
  • Modular inverse
  • Jacobi/Lagrange symbol
  • Primality testing
  • Miller-Rabin primality testing
  • Lucas primality testing
  • Prime generation
  • Twin prime generation
  • Prime-counting function pi
  • Prime factorization
  • Pollard's rho factorization
  • Pollard's p-1 factorization
  • Divisor list generation
  • Euler's phi function (totient)
  • Carmichael's lambda function
  • Modular square root
  • Rational number arithmetic
  • Rational approximation
  • Square root approximations
  • Continued fraction algorithm
  • Pi approximation
  • Polynomial arithmetic
  • Modular arithmetic
  • Ring extensions by sqrt(D)
  • Quaternion arithmetic
  • Sums of two squares
  • Sums of four squares

Some of the features that I will be adding in the future include:

  • Rational number sieve
  • Algebraic ring extentions
  • Finite field arithmetic
  • Cryptography
  • Elliptic curve arithmetic
  • Elliptic curve primality testing
  • Elliptic curve factorization

The goal of this library is not necessarily to improve on the many already existing and already optimized functions that exist in other packages/languages, but rather to understand how these structures/algorithms are implemented from basic principles.

One of the long-term goals of this library is to build an interactive online tool for learning computational Number Theory, both theoretically and programmatically. This educational aspect will develop concurrently with the further improvements and additions to the library.

Visit github.com/itscomputers/numth to view the source code of this currently unfinished, but in-progress, python library. And please contact me if you have suggestions or critiques regarding the library!