Programme de calcul du pgcd

elboras Messages postés 31 Statut Membre -  
 OPTIMUS -
avez vous déjà essayé de faire le programme de clcul du pgcd en C++, ou meme en algorithmie ?
Et ben essayé !
En faite , je suis pas un crack en c++ , j'ai que 15 ans .
Masi en faisant le programme de calcul du pgcd je part dans plein de
IF a > B
plein de condition et le programme devient impossible !
Pouvez vous essayé de faire une algo simple ou un prog en c++ ?
merci d'avance ...

6 réponses

Résumé de la discussion

Plusieurs participants abordent la création d’un programme de calcul du PGCD en C++ ou en algorithmie, le problème étant d’éviter l’encombrement par de nombreuses conditions et boucles. La meilleure réponse présente l’algorithme d’Euclide itératif en C, puis une version en C utilisant une boucle while et les opérations modulo pour déterminer le PGCD rapidement. D’autres interviennent avec une méthode par soustractions successives simple mais moins efficace, une version récursive et même des remarques sur les cas limites comme a égal b qui peuvent créer des boucles. En complément, certains évoquent des variantes pédagogiques et des cas particuliers (négatifs, zéro, polynômes) et suggèrent d’expérimenter plusieurs implémentations pour comparer performances et robustesse.

Bobot (l'IA à votre service)
  1. lama
     
    En quelques lignes, ça marche:

    Algo

    Début
    reste <-- 1
    ecrire (' N1= ')
    lire (n1)
    ecrire (' N2= ')
    lire (n2)
    dividende <-- n1
    diviseur <-- n2

    #tant que reste <> 0 faire
    reste <-- dividende mod diviseur
    dividende <-- diviseur
    diviseur <-- reste
    Fin tant que

    ecrire (' Le PGCD de ',n1,' et ',n2,' est ',dividende)
    Fin

    En C

    #include <stdio.h>
    
    void main()
    {
     int reste;
     int n1,n2,dividende,diviseur;
    
     reste = 1;
    
     printf (" N1= ");
     scanf ("%d", &n1);
     printf (" N2= ");
     scanf ("%d", &n2);
     dividende=n1;
     diviseur=n2;
    
     while (reste!=0)
     {
      reste=dividende%diviseur;
      dividende=diviseur;
      diviseur=reste;
     }
    
     printf (" Le PGCD de %d et %d est %d",n1,n2,dividende);
    }
    27
    1. elboras Messages postés 31 Statut Membre
       
      je te remercie !
      Je vais impressionné mon prof de math avec ça lol !
      Tu as l'air doué !
      @+
      0
    2. lama > elboras Messages postés 31 Statut Membre
       
      Pas de problèmes ;o)
      0