input: two integer 'numerator' and 'denominator' assumes: 'denominator' != 0 returns: a tuple with simplify numerator and denominator.
(numerator, denominator)
| 541 | # ------------------------------------------------------------ |
| 542 | |
| 543 | def simplifyFraction(numerator, denominator): |
| 544 | """ |
| 545 | input: two integer 'numerator' and 'denominator' |
| 546 | assumes: 'denominator' != 0 |
| 547 | returns: a tuple with simplify numerator and denominator. |
| 548 | """ |
| 549 | |
| 550 | # precondition |
| 551 | assert isinstance(numerator, int) and isinstance(denominator,int) \ |
| 552 | and (denominator != 0), \ |
| 553 | "The arguments must been from type int and 'denominator' != 0" |
| 554 | |
| 555 | # build the greatest common divisor of numerator and denominator. |
| 556 | gcdOfFraction = gcd(abs(numerator), abs(denominator)) |
| 557 | |
| 558 | # precondition |
| 559 | assert isinstance(gcdOfFraction, int) and (numerator % gcdOfFraction == 0) \ |
| 560 | and (denominator % gcdOfFraction == 0), \ |
| 561 | "Error in function gcd(...,...)" |
| 562 | |
| 563 | return (numerator // gcdOfFraction, denominator // gcdOfFraction) |
| 564 | |
| 565 | # ----------------------------------------------------------------- |
| 566 |