|
21 | 21 |
|
22 | 22 | is_even(number)
|
23 | 23 | is_odd(number)
|
24 |
| -gcd(number1, number2) // greatest common divisor |
25 | 24 | kg_v(number1, number2) // least common multiple
|
26 | 25 | get_divisors(number) // all divisors of 'number' inclusive 1, number
|
27 | 26 | is_perfect_number(number)
|
|
40 | 39 |
|
41 | 40 | from math import sqrt
|
42 | 41 |
|
| 42 | +from maths.greatest_common_divisor import gcd_by_iterative |
| 43 | + |
43 | 44 |
|
44 | 45 | def is_prime(number: int) -> bool:
|
45 | 46 | """
|
@@ -317,39 +318,6 @@ def goldbach(number):
|
317 | 318 | # ----------------------------------------------
|
318 | 319 |
|
319 | 320 |
|
320 |
| -def gcd(number1, number2): |
321 |
| - """ |
322 |
| - Greatest common divisor |
323 |
| - input: two positive integer 'number1' and 'number2' |
324 |
| - returns the greatest common divisor of 'number1' and 'number2' |
325 |
| - """ |
326 |
| - |
327 |
| - # precondition |
328 |
| - assert ( |
329 |
| - isinstance(number1, int) |
330 |
| - and isinstance(number2, int) |
331 |
| - and (number1 >= 0) |
332 |
| - and (number2 >= 0) |
333 |
| - ), "'number1' and 'number2' must been positive integer." |
334 |
| - |
335 |
| - rest = 0 |
336 |
| - |
337 |
| - while number2 != 0: |
338 |
| - rest = number1 % number2 |
339 |
| - number1 = number2 |
340 |
| - number2 = rest |
341 |
| - |
342 |
| - # precondition |
343 |
| - assert isinstance(number1, int) and ( |
344 |
| - number1 >= 0 |
345 |
| - ), "'number' must been from type int and positive" |
346 |
| - |
347 |
| - return number1 |
348 |
| - |
349 |
| - |
350 |
| -# ---------------------------------------------------- |
351 |
| - |
352 |
| - |
353 | 321 | def kg_v(number1, number2):
|
354 | 322 | """
|
355 | 323 | Least common multiple
|
@@ -567,14 +535,14 @@ def simplify_fraction(numerator, denominator):
|
567 | 535 | ), "The arguments must been from type int and 'denominator' != 0"
|
568 | 536 |
|
569 | 537 | # build the greatest common divisor of numerator and denominator.
|
570 |
| - gcd_of_fraction = gcd(abs(numerator), abs(denominator)) |
| 538 | + gcd_of_fraction = gcd_by_iterative(abs(numerator), abs(denominator)) |
571 | 539 |
|
572 | 540 | # precondition
|
573 | 541 | assert (
|
574 | 542 | isinstance(gcd_of_fraction, int)
|
575 | 543 | and (numerator % gcd_of_fraction == 0)
|
576 | 544 | and (denominator % gcd_of_fraction == 0)
|
577 |
| - ), "Error in function gcd(...,...)" |
| 545 | + ), "Error in function gcd_by_iterative(...,...)" |
578 | 546 |
|
579 | 547 | return (numerator // gcd_of_fraction, denominator // gcd_of_fraction)
|
580 | 548 |
|
|
0 commit comments