eulerlib
eulerlib copied to clipboard
A library of recreational mathematics and number theory related functions inspired by Project Euler
EulerLib
eulerlib__ is a library of recreational mathematics and number theory related
functions inspired by Project Euler_. Available functions include:
- Prime number generation
- Divisor functions (sigma functions)
- Euler's totient function
- Greatest Common Divisor (GCD) using Euclid's algorithm
- Least Common Multiple (LCM)
- Integer square root
- Fibonacci numbers
- Pandigital numbers
- Palindrome numbers
- Pythagorean triples
Functions from this library can be used to solve recreational mathematics and programming problems such as problems in Project Euler.
Installation
eulerlib__ is avalaible through Python Package Index (PyPI) using
pip. ::
pip install --upgrade eulerlib
To uninstall using pip_. ::
pip uninstall eulerlib
Usage
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_.
Modules
+----------------+------------------------------------------------------------+ |prime_numbers.py| Functions to generate lists of primes. | +----------------+------------------------------------------------------------+ |numtheory.py | * Euler's divisor functions (sigma funtions) | | | * Euler's totient function (phi function) | | | * Prime factors of a number | | | * Divisors of a number | | | * Greatest Common Divisor (GCD) | | | * Least Common Multiple (LCM) | | | * Digital root and digital sum of a number | +----------------+------------------------------------------------------------+ |fibonacci.py | Functions related to the Fibonacci sequence. | +----------------+------------------------------------------------------------+ |pythagoras.py | Functions related to Pythagorean triples. | +----------------+------------------------------------------------------------+ |etc.py | Miscellaneous functions: | | | | | | * Pandigital numbers | | | * Conversion from decimal to base n (2-36) | | | * Number to lists and vice versa | | | * Palindrome numbers | +----------------+------------------------------------------------------------+
Development
Source code repositories (GitHub, BitBucket) are available.
Bug reports_ and suggestions are most welcome.
License
eulerlib is licensed under Apache License 2.0_.
.. _Project Euler: https://projecteuler.net .. _PyPI: https://pypi.python.org/pypi .. _pip: https://pip.pypa.io .. _Apache License 2.0: https://www.apache.org/licenses/LICENSE-2.0.html .. _problem 3: https://projecteuler.net/problem=3 .. _GitHub: https://github.com/transmogrifier/eulerlib .. _BitBucket: https://bitbucket.org/transmogrifier/eulerlib .. _Bug reports: https://github.com/transmogrifier/eulerlib/issues .. documentation: http://pythonhosted.org/eulerlib .. eulerlib1: https://pypi.python.org/pypi/eulerlib __ eulerlib1 __ eulerlib1