Elementary functions¶
- boring_math.number_theory.gcd(m: int, n: int, /) int¶
gcd - greatest common divisor
Uses Euclidean algorithm to compute the gcd of two integers.
- param m:
First int for gcd calculation.
- param n:
Second int for gcd calculation.
- returns:
The gcd of the absolute values of m and n.
Note
mathematically the gcd(0, 0) does not exist
taking gcd(0, 0) = 1
Better choice than math.gcd(0, 0) = 0.
More mathematically justified.
Eliminates lcm & coprime having to edge case test.
- boring_math.number_theory.lcm(m: int, n: int, /) int¶
lcm - least common multiple
Find the least common multiple (lcm) of two integers.
- param m:
First int for lcm calculation.
- param n:
Second int for lcm calculation.
- returns:
The lcm of the absolute values of m and n.
- boring_math.number_theory.coprime(m: int, n: int, /) tuple[int, int]¶
coprime
Make 2 integers coprime by dividing out their common factors.
- param m:
First int for coprime calculation.
- param n:
Second int for coprime calculation.
- returns:
Coprimed values with original signs, also (0, 0) when n = m = 0.
- boring_math.number_theory.iSqrt(n: int, /) int¶
iSqrt - integer square root
Takes the integer square root of a non-negative integer.
- param n:
Integer whose integer square root is to be found.
- returns:
The unique m such that m*m <= n < (m+1)*(m+1)
- raises ValueError:
if n < 0.
- boring_math.number_theory.isSqr(n: int, /) bool¶
isSqr
Determine if argument is a perfect square.
- param n:
Integer to check.
- returns:
True only if integer argument is a perfect square.