[C/C++] code du PGCD et du PPCM ?

code du PGCD et du PPCM ? [C/C++] - Algo - Programmation

Marsh Posté le 27-11-2002 à 09:54:16    

salut
j'aurais besoin de l'algo pour calculer le PGCD et le PPCM de 2 nbs  
 
qqn a ça en stock ?  
 
Thanx  :jap:


---------------
Selliere est à l'économie, ce que LePen est à la politique
Reply

Marsh Posté le 27-11-2002 à 09:54:16   

Reply

Marsh Posté le 27-11-2002 à 10:10:08    

Voila une methode pour le pgcd.
 

Code :
  1. long pgcd(long a, long b)
  2. {
  3. //Calcul du PGCD de deux nombres par la methode d'Euclide
  4.     long pgcd;
  5.     do
  6.     {
  7.        if(a<b)
  8.         {
  9.             long swap = b;
  10.             b = a;
  11.             a = swap;
  12.         }
  13.         long tempo = a % b;
  14.         pgcd = a;
  15.         a = b;
  16.         b = tempo;
  17.     }
  18.     while (b>0);
  19.     return pgcd;
  20. }


 
puis le ppcm = a*b/pgcd(a,b)...
 
 
 

Reply

Marsh Posté le 27-11-2002 à 10:20:41    

BENB a écrit a écrit :

Voila une methode pour le pgcd.
 

Code :
  1. long pgcd(long a, long b)
  2. {
  3. //Calcul du PGCD de deux nombres par la methode d'Euclide
  4.     long pgcd;
  5.     do
  6.     {
  7.        if(a<b)
  8.         {
  9.             long swap = b;
  10.             b = a;
  11.             a = swap;
  12.         }
  13.         long tempo = a % b;
  14.         pgcd = a;
  15.         a = b;
  16.         b = tempo;
  17.     }
  18.     while (b>0);
  19.     return pgcd;
  20. }


 
puis le ppcm = a*b/pgcd(a,b)...
 
 
 
 




 
merci !  :hello:


---------------
Selliere est à l'économie, ce que LePen est à la politique
Reply

Marsh Posté le 27-11-2002 à 11:06:34    

petit probleme :
 
qd je rentre 2047 et 184, il me sort 5 ??
 
alor que le résultat devrait etre 23  :pt1cable:


---------------
Selliere est à l'économie, ce que LePen est à la politique
Reply

Marsh Posté le 27-11-2002 à 11:33:50    

Désolée, c'etait une fonction qui avait été ecrite pour des demonstartions de syntaxe :D sont fonctionnement n'avait pas été testé :D
 
long pgcd(long a,long b)
{
/*Calcul de la racine carre de N a l'aide de la formule de Heron*/
 long pgcd;
 do
 {
  if (a<b)
  {
   long swap = b;
   b=a;
   a=swap;
  }
  long tempo = a%b;
  a = b;
  b = tempo;
                pgcd = a;
 }
 while (b>0);
 return pgcd;
}

Reply

Marsh Posté le 28-11-2002 à 19:13:44    

fait la en recursif, c encore plus simple


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 21-01-2003 à 23:34:32    

tiens moi g fais ça et ça marche:
 

Citation :


#include<stdio.h> /*pour scanf et printf*/
#include<conio.h>
 
void main()
 {
int A, B, SA, SB ;
char rep ;
 
   
 
    do
     {
 
printf("\n choisir le premier nombre : " )  ;
 
 scanf("%d", &A);  /*saisie une valeur pour A   au clavier*/
 
  printf("\n choisir le deuxieme nombre : " ) ;
 
     scanf("%d",&B); /*saisie une valeur pour B au clavier*/
       SA = A /* SA reçoit A*/   ;
 
       SB = B /* SB reçoit B*/   ;
 
       while ( SA != SB )  /*calcul ppcm*/
  {
    if ( SA > SB )
               
    SB = SB  + B ;
     
    else
     
    SA = SA + A ;
     
     }
 
     printf("\n  PPCM: %d", SA);
 
           
 
      do
 
            {
      printf("\n voulez vous recommer? OUI=O NON=N  : " ) ;
 
      rep = getche ( ) ;    /* saisie rep*/
 
     } while (( rep != 'O' ) && ( rep != 'N' )) ;
 
 
      } while    ( rep != 'N' )    ;


Message édité par Zobman le 21-01-2003 à 23:35:02

---------------
La réalité n'est qu'une illusion créée par le manque de Drogue....
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed