[dev c++][vc++]pgcd par soustraction !

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 197 fois - Téléchargée 38 fois

Contenu du snippet

Voila, c'est le premier algorithme que j'ai appris, pour calculer le PGCD, ( et que, par flemme de le faire a la main vu la longueur) et que j'ai codé.

Source / Exemple :


#include "iostream.h"
#include "stdlib.h"
#include "stdio.h"
#include "conio.c"  // normallement, c'est conio.h mais pas chez moi...

void pgcd();

int main()
{
pgcd(); // si on faisait les calculs dans la fonction main(), ca ne serait pas trés "propre".
return 0;
}

void pgcd()
{
int A;
int B ;
int PGCD ;
cout << "\t\tPGCD( A,B ) = ?? \n\n\n\n";

cout << "Veuillez donner A : \n";
cin >>A ; // on rentre la valeur de A

cout << "\n\n\nVeuillez donner B :\n";
cin >>B; // on rentre la valeur de B
cout << "\n\n\n";
clrscr(); // on efface l'ecran : utile quand on a plein d'operations à affichés!
do      // boucle do-while()
{
if (A>B)  // si a est plus grand que B
{
PGCD = A;    // alors la variable PGCD est egale à A
A = A-B ;   // qui A est egal a A-B
cout << "PGCD ( " << PGCD << " ; "<< B << " ) = " << A <<endl ;
}
else       // par contre, si B est supérieur a A,
{
PGCD = B; // La variable PGCD est egal à B
B = B-A ; //qui B est egal a B-A
cout << "PGCD ( " << PGCD << " ; "<< A << " ) = " << B <<endl ;
}
}
while((A>0)&&(B>0));   // on dit qu'il faut effectuer cette boucle tant que A est different de 0
                       // ET/OU B est different de 0.

cout << "\n\nLe PGCD final est donc : " << PGCD << "\n\n" ;

if (PGCD == 1 ) // un petit plus : si la variable PGCD est egal à 1
{
cout << "ATTENTION : le PGCD \202tant de 1, ce sont nombres premiers entres eux !\n\n" ;   // A et B sont premiers entres eux.
}
// comme il n'y a pas d'instruction "else", le programme considere qu'il de faut rien faire.
// en clair, si le PGCD (a,b) = 1, on dit qu'il faut afficher la phrase plus haute; en revanche, si il est
// superieur, ils ne sont donc pas premiers entres eux, on ne fait rien, on continue le prog.

system("PAUSE");
}

Conclusion :


Bon, c pas compliqué.
la seule correction que les gars du forum de www.developpez.com m'ont faite est avec la variable PGCD. Autrement dit, pas grand chose.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.