Programme de calcul du pgcd

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. 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. je te remercie !
      Je vais impressionné mon prof de math avec ça lol !
      Tu as l'air doué !
      @+
      0
    2. @elborasPas de problèmes ;o)
      0
    3. peu tu me faire un programme de calcul sur :

      [-5.4:(3-2.1)]-10
      0
    4. fau prograame
      0
    5. ca fait beaucoup de lignes ca :(
      0