[Python-ideas] Add the imath module

Serhiy Storchaka storchaka at gmail.com
Thu Jul 12 07:55:58 EDT 2018

What are your thoughts about adding a new imath module for integer 
mathematics? It could contain the following functions:

* factorial(n)

Is just moved from the math module, but non-integer types are rejected. 
Currently math.factorial() accepts also integer floats like 3.0. It 
looks to me, the rationale was that at the time when math.factorial() 
was added, all function in the math module worked with floats. But now 
we can revise this decision.

* gcd(n, m)

Is just moved from the math module.

* as_integer_ration(x)

Equivalents to:

def as_integer_ration(x):
     if hasattr(x, 'as_integer_ration'):
         return x.as_integer_ration()
         return (x.numerator, x.denominator)

* binom(n, k)

Returns factorial(n) // (factorial(k) * factorial(n-k)), but uses more 
efficient algorithm.

* sqrt(n)

Returns the largest integer r such that r**2 <= n and (r+1)**2 > n.

* isprime(n)

Tests if n is a prime number.

* primes()

Returns an iterator of prime numbers: 2, 3, 5, 7, 11, 13,...

Are there more ideas?

More information about the Python-ideas mailing list