Greatest common divisor input: two positive integer 'number1' and 'number2' returns the greatest common divisor of 'number1' and 'number2'
(number1,number2)
| 314 | # ---------------------------------------------- |
| 315 | |
| 316 | def gcd(number1,number2): |
| 317 | """ |
| 318 | Greatest common divisor |
| 319 | input: two positive integer 'number1' and 'number2' |
| 320 | returns the greatest common divisor of 'number1' and 'number2' |
| 321 | """ |
| 322 | |
| 323 | # precondition |
| 324 | assert isinstance(number1,int) and isinstance(number2,int) \ |
| 325 | and (number1 >= 0) and (number2 >= 0), \ |
| 326 | "'number1' and 'number2' must been positive integer." |
| 327 | |
| 328 | rest = 0 |
| 329 | |
| 330 | while number2 != 0: |
| 331 | |
| 332 | rest = number1 % number2 |
| 333 | number1 = number2 |
| 334 | number2 = rest |
| 335 | |
| 336 | # precondition |
| 337 | assert isinstance(number1,int) and (number1 >= 0), \ |
| 338 | "'number' must been from type int and positive" |
| 339 | |
| 340 | return number1 |
| 341 | |
| 342 | # ---------------------------------------------------- |
| 343 |