Présentation de l'algorithme :
La méthode utilisée ici consiste à chercher les diviseurs en commençant par 2 jusqu'à la partie entière de n/2. Une fois qu'on a trouvé un diviseur, on cherche combien de fois il intervient dans la décomposition.
Code de l'algorithme :
VARIABLES
n EST_DU_TYPE NOMBRE
diviseur EST_DU_TYPE NOMBRE
nbfacteurs EST_DU_TYPE NOMBRE
a EST_DU_TYPE NOMBRE
puissance EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE n
AFFICHER n
AFFICHER "="
a PREND_LA_VALEUR n
nbfacteurs PREND_LA_VALEUR 0
POUR diviseur ALLANT_DE 2 A floor(n/2)
DEBUT_POUR
SI (a%diviseur==0) ALORS
DEBUT_SI
nbfacteurs PREND_LA_VALEUR nbfacteurs+1
puissance PREND_LA_VALEUR 1
a PREND_LA_VALEUR a/diviseur
TANT_QUE (a%diviseur==0) FAIRE
DEBUT_TANT_QUE
puissance PREND_LA_VALEUR puissance+1
a PREND_LA_VALEUR a/diviseur
FIN_TANT_QUE
SI (nbfacteurs>1) ALORS
DEBUT_SI
AFFICHER " * "
FIN_SI
AFFICHER diviseur
AFFICHER "^"
AFFICHER puissance
FIN_SI
FIN_POUR
SI (nbfacteurs==0) ALORS
DEBUT_SI
AFFICHER n
FIN_SI
FIN_ALGORITHME
Fichier AlgoBox associé : facteurs_premiers.alg (faire un clic-droit et utiliser l'option "enregistrer sous" pour télécharger le fichier)
Tester l'algorithme :