Algorithme du ppmc

Résolu
stephane -  
KX Messages postés 19031 Statut Modérateur -
Salut, j'aimerais savoir si quelqu'un connaît un algo pour avoir le ppmc de plusieurs nombres. (plus petit multiple commun). Merci d'avance.

24 réponses

  • 1
  • 2
Résumé de la discussion

Recherche d'un algorithme fiable pour calculer le ppcm (plus petit commun multiple) de plusieurs nombres, afin de déterminer rapidement un multiple commun à l'ensemble des éléments et faciliter les calculs. Plusieurs réponses proposent d'utiliser le pgcd comme base et d'appliquer un calcul itératif du ppcm entre deux nombres, puis d'intégrer progressivement chaque nombre supplémentaire pour obtenir le résultat final. D'autres signalent une méthode par maxi et un facteur n croissant, ou une approche par réduction en sous-ensembles qui calcule d'abord le ppcm de deux nombres puis l'applique au suivant. Les échanges incluent des extraits de code Liberty BASIC et des conseils sur le codage, tout en soulignant que l'approche optimale dépend du contexte et du nombre de nombres.

Bobot (l'IA à votre service)
  1. PASCAL
     
    tout d'abord tu prends le plus grand de tous les nombres que tu veux comparer, tu l'appelle [maxi], puis tu le multiplie par n (tu demare avec n=1)
    ensuite tu divise chaque nombre par [maxi] x n si le resultat de la division est un entier pour chaque nombre tu as trouvé le ppcm. si pour au moin un des nombre le resultat de la division n'est pas un entier alors tu incremente n de 1 et tu recommence.

    voici le code en Liberty BASIC.

    print "calcul du plus petit commun multiple"
    input "combien de nombres voulez-vous comparer ";nb
    dim n(nb)
    maxi=0
    for i=1 to nb
    print "entrez le nombre numero ";i
    input n(i)
    maxi=max(maxi, n(i))
    next i
    while z=0
    z=1
    count=count+1
    multiple=maxi*count
    for u=1 to nb
    cp=multiple/n(u)
    ab=int(cp)
    if ab<>cp then z=0
    next u
    wend
    print "le ppcm de :"
    for i=1 to nb
    print n(i)
    next i
    print "est :"
    print multiple
    wait

    Tu trouveras Liberty BASIC en telechargement sur le site :

    http://lbasic.atomysk.com

    et de l'aide sur le forum qui va avec:

    http://lbasic.atomysk.com/forum/
    7
  • 1
  • 2