Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programme : Algorithme d'Euclide

A voir !

    16 janvier 2006 à 22:39:17

    <hs> Le C est impératif procédural structuré mais pas fonctionnel ; allez voir une doc comme wikipedia.
    • Partager sur Facebook
    • Partager sur Twitter
      20 janvier 2006 à 20:25:37

      euh a propos du ppcm, j'ai essaye un truc, mais ca ne fonctionne pas... c'est basique: on multiplie les 2 nombres par un multiplicateur, qu'on incremente a chaque "tour", le tout tant que les 2 nombres ne sont pas egaux, enfin voila:

      #include <stdio.h>
      #include <stdlib.h>

      int calcul(int nombre1, int nombre2);

      int main(int argc, char *argv[])
      {
        int nombre1 = 0, nombre2 = 0, ppcm = 0;
        printf("\n Entrez les nombres dont vous voulez avoir le PPCM:");
        printf("\n nombre 1: ");
        scanf("%d", &nombre1);
        printf(" nombre 2: ");
        scanf("%d", &nombre2);
        ppcm = calcul(nombre1, nombre2);
        printf("\n Le PPCM de %d et %d est %d\n\n", nombre1, nombre2, ppcm);
        system("PAUSE");
        return 0;
      }

      int calcul(int nombre1, int nombre2)
      {
        int ppcm = 0, multiplicateur = 1;
        while (nombre1 != nombre2)
        {
              nombre1 * multiplicateur;
              nombre2 * multiplicateur;
              multiplicateur ++;
        }
        ppcm = nombre1;
        return ppcm; // on peut mettre directement return nombre1, mais pour la comprehension, c'est mieux
      }


      donc si quelqu'un peut m'expliquer mon erruer, merci d'avance!

      PS: je voudrais pas fair du deterrage de topic, mais ce probleme commence serieusement a me gonfler, et je ne pense pas que ce soit la peine de refair un topic pour ca...
      • Partager sur Facebook
      • Partager sur Twitter
        21 janvier 2006 à 9:59:41

        Parce que ta formule n'est pas bonne.

        Pour calculer le ppcm, le meilleur miyen est de calculer le pgcd, puis il existe une formule qui dit que :
        a*b = pgcd(a,b)*ppcm(a,b)
        d'où :
        ppcm(a,b) = (a*b)/(ppcm(a,b))
        Et comme il est facile de trouver le pgcd, principalement grace a l'algorithme d'Euclide.

        Autre petite remarque, essayez d'ecrire la fonction pour le pgcd de manière recussive, ça aussi c'est du bon entraienement ;)

        Edit :
        J'ai oublié de te dire pourquoi ta formule n'est pas bonne :
        Pour calculer le ppcm, tu cherche n*a = n*b
        Or, n étant strictement positif, on peut en déduire que tu cherche a=b
        a et b étant différents...
        Je te laisse conclure ;)
        • Partager sur Facebook
        • Partager sur Twitter
          21 janvier 2006 à 14:07:43

          Ah oui ok je viens de comprendre, dans ma formule, ca ne marchait que si c'etait le meme multiplicateur, ce qui est impossible a moins que les 2 nombres soient egaux. sinon en fait j'essayais de trouver une formule sans l'algorithme d'euclyde, pour reflechir un peu... ca aurait ete l'algorythme de M@kss :p
          • Partager sur Facebook
          • Partager sur Twitter

          Programme : Algorithme d'Euclide

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown