arithmetique.py

Created by ilyas-r

Created on April 01, 2024

848 Bytes


def diviseurs(n):
    d = []
    for i in range(1, n):
        if n % i == 0:
            d += [i]
    return d + [n]


# Version 1, classique et sans astuce        
def pgcd(a , b):
    if a < b :
      k = a
      a = b
      b = k
    while a % b != 0:
        r = a % b
        a = b
        b = r
    return b

# Version 2, on exploite les possibilités de python
def pgcd(a , b):
    a, b = max(a, b), min(a, b)
    while a % b != 0:
        a, b = b, a % b
    return b
    
# Version 3, on gère les entiers relatifs et les erreurs
def pgcd(a , b):
    a, b = max(abs(a), abs(b)), min(abs(a), abs(b))
    if a != int(a) or b != int(b):
        return "Il faut saisir des entiers"
    if a == 0 or b == 0: # Le cas (0,0) n'est pas géré.
        return max(a,b)
    while a % b != 0:
        a, b = b, a % b
    return b