MCPcopy Index your code
hub / github.com/TheAlgorithms/Python / simplify_fraction

Function simplify_fraction

maths/primelib.py:728–761  ·  view source on GitHub ↗

input: two integer 'numerator' and 'denominator' assumes: 'denominator' != 0 returns: a tuple with simplify numerator and denominator. >>> simplify_fraction(10, 20) (1, 2) >>> simplify_fraction(10, -1) (10, -1) >>> simplify_fraction("test","test") Traceback (mos

(numerator, denominator)

Source from the content-addressed store, hash-verified

726
727
728def simplify_fraction(numerator, denominator):
729 """
730 input: two integer 'numerator' and 'denominator'
731 assumes: 'denominator' != 0
732 returns: a tuple with simplify numerator and denominator.
733
734 >>> simplify_fraction(10, 20)
735 (1, 2)
736 >>> simplify_fraction(10, -1)
737 (10, -1)
738 >>> simplify_fraction("test","test")
739 Traceback (most recent call last):
740 ...
741 AssertionError: The arguments must been from type int and 'denominator' != 0
742 """
743
744 # precondition
745 assert (
746 isinstance(numerator, int)
747 and isinstance(denominator, int)
748 and (denominator != 0)
749 ), "The arguments must been from type int and 'denominator' != 0"
750
751 # build the greatest common divisor of numerator and denominator.
752 gcd_of_fraction = gcd_by_iterative(abs(numerator), abs(denominator))
753
754 # precondition
755 assert (
756 isinstance(gcd_of_fraction, int)
757 and (numerator % gcd_of_fraction == 0)
758 and (denominator % gcd_of_fraction == 0)
759 ), "Error in function gcd_by_iterative(...,...)"
760
761 return (numerator // gcd_of_fraction, denominator // gcd_of_fraction)
762
763
764# -----------------------------------------------------------------

Callers

nothing calls this directly

Calls 1

gcd_by_iterativeFunction · 0.90

Tested by

no test coverage detected