eulerlib is a library of recreational mathematics and number theory related functions inspired by Project Euler. Available functions include:
Functions from this library can be used to solve recreational mathematics and programming problems such as problems in Project Euler.
eulerlib is avalaible through Python Package Index (PyPI) using pip.
>>> pip install --upgrade eulerlib
To uninstall using pip.
>>> pip uninstall eulerlib
In Python console you can import functions/classes from eulerlib as needed.
>>> from eulerlib import primes
>>> p10 = primes(10)
>>> print(p10)
[2, 3, 5, 7]
The Divisors class implements functions related to prime factorization, sigma functions etc.
>>> from eulerlib import Divisors
>>> mydiv = Divisors(10000)
>>> div84 = mydiv.divisors(84) #divisors of 84
>>> print(div84)
[1, 2, 3, 4, 6, 7, 12, 14, 21, 28, 42, 84]
>>> pf840 = mydiv.prime_factors(840) # prime factors of 840
>>> print(pf840)
[(2, 3), (3, 1), (5, 1), (7, 1)]
Example: Solved Project Euler problem 3.
from eulerlib import is_square, primes
#get approximate square root of number since
#largest prime factor < sq. root
(is_sq, sqroot) = is_square(600851475143L)
#get a list of primes less than the approx. square root.
test_primes = primes(sqroot + 1L)
#test the primes from the list to find the largest factor
len_p = len(test_primes)
for i in range(1,len_p+1):
j = 0 - i
test_fact = test_primes[j]
if 600851475143L%test_fact == 0:
break
answer = test_fact #Set the answer
See complete documentation.
prime_numbers.py | Functions to generate lists of primes. |
numtheory.py |
|
fibonacci.py | Functions related to the Fibonacci sequence. |
pythagoras.py | Functions related to Pythagorean triples. |
etc.py | Miscellaneous functions:
|
Source code repositories (GitHub, BitBucket) are available. Bug reports and suggestions are most welcome.
eulerlib is licensed under Apache License 2.0.