Mathématiques en seconde générale et technologique – Algorithmes

Plus grand multiple de a
inférieur ou égal à b

Pour des entiers a et b donnés, déterminer le plus grand multiple de a inférieur ou égal à b.

Version élémentaire, pour des entiers naturels

def multiple_max_naturels(a, b) :
    m = 0
    while m <= b :
        m += a
    return m - a

def run(a, b) :
    print("Le plus grand multiple de {} inférieur ou égal à {} est {}."
              .format(a, b, multiple_max_naturels(a, b)))

run(7, 20)
run(7, 21)
run(7, 5)
run(7, 0)
Le plus grand multiple de 7 inférieur ou égal à 20 est 14.
Le plus grand multiple de 7 inférieur ou égal à 21 est 21.
Le plus grand multiple de 7 inférieur ou égal à 5 est 0.
Le plus grand multiple de 7 inférieur ou égal à 0 est 0.

Version générale, pour des entiers relatifs

def multiple_max(a, b) :
    return b - b % abs(a)

def run(a, b) :
    print("Le plus grand multiple de {} inférieur ou égal à {} est {}."
              .format(a, b, multiple_max(a, b)))

run(7, 20)
run(7, 21)
run(7, 5)
run(7, 0)
run(7, -20)
run(7, -21)
run(-7, 20)
run(-7, 21)
run(-7, -20)
run(-7, -21)
Le plus grand multiple de 7 inférieur ou égal à 20 est 14.
Le plus grand multiple de 7 inférieur ou égal à 21 est 21.
Le plus grand multiple de 7 inférieur ou égal à 5 est 0.
Le plus grand multiple de 7 inférieur ou égal à 0 est 0.
Le plus grand multiple de 7 inférieur ou égal à -20 est -21.
Le plus grand multiple de 7 inférieur ou égal à -21 est -21.
Le plus grand multiple de -7 inférieur ou égal à 20 est 14.
Le plus grand multiple de -7 inférieur ou égal à 21 est 21.
Le plus grand multiple de -7 inférieur ou égal à -20 est -21.
Le plus grand multiple de -7 inférieur ou égal à -21 est -21.
Lionel Avon