Décomposer un nombre en facteurs premiers

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 828 fois - Téléchargée 33 fois

Contenu du snippet

cet algorithmecalcule et affiche les facteurs premiers d'un entier donné et détermine leurs nombres.

Source / Exemple :


// Nom             :   Série 16 exercice 3
// Nom             :   Facteurs premiers
// Description     :   décompose un nombre en facteurs premiers
// Auteur          :   Trioy
// Date            :   14.01.03
//Préconditions    :    Aucune
#pragma hdrstop
# include <iostream.h>
# include <conio.h>
# include <iomanip.h>
# include <math.h>

//---------------------------------------------------------------------------

// un tout grand merci a la série 11 exercice  2
void main (void)
{
   //Variables
	int div,nbre, nbrepremier,n;
	 bool flagPrem ;
        cout<<"***Petit programme qui decompose un nombre en facteur premier****"<< endl <<endl ;
	nbre = 0  ;
	nbrepremier = 0 ;
	flagPrem = true ;
	do
        {
	        cout<<" Veuillez saisir un entier a decomposer > 1 "  ;
	        cin >>nbre;
        }
	while(nbre<=1);

	if (nbre % 2 == 0)
        {
		nbrepremier = 1 ;
		cout << endl <<endl <<" 2 est un facteur premier de "<< nbre <<endl <<endl;
        }
	for (div=3 ; div<=nbre/2 ; div=div+2)
                {
	        if (nbre % div == 0)
                        {
		        flagPrem = true ;
			if (div > 3)
                                {
                                n = 3 ;
				while(n * n <= div && flagPrem)
                                        {
					if (div % n == 0)
		    				 flagPrem = false;
                                        n = n + 2 ;
                                        }
                                }

			if (flagPrem)
                                {
                                nbrepremier = nbrepremier + 1 ;
                                cout << endl << " " << div << " est un facteur premier de " << nbre << endl<< endl;
                                }
                        }
                }

	cout <<endl << "le nombre "<<nbre <<" a "<<nbrepremier<<" de facteur(s) premier(s)"<< endl<< endl;
        cout <<endl <<endl<< "Appuyer sur une touche pour quitter ";
        getch();
}
//---------------------------------------------------------------------------

Conclusion :


heu ben ya un ptit prob c'est qu'il prend pas en compte si le nombre est son propre facteur premier...mais sinon ca devrait tourner...

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.