Décomposition en facteurs premiers
|
Le problème
Écrire une procédure de décomposition d'un entier en facteurs premiers. Vous
utiliserez, bien entendu, ce que nous avons fait sur les nombres premiers
dans les précédents TDs (crible d'ératosthene).
Programmation
Nous allons mettre en pratique la compilation séparée de fichiers sources
puis l'édition de liens afin de relier un nouveau programme à une
bibliothèque de procédures ou fonctions déjà écrites et compilées.
La démarche est la suivante :
- reprendre votre fichier source du crible d'ératosthene (eratos.cpp) et
ajouter une procédure de transformation d'une liste de
"booléens" (0 et 1 en C) en une liste d'entiers ;
- enregistrer ce nouveau source sous le nom eratoslib.cpp ;
- définir un nouveau projet en indiquant à la création du projet que vous souhaitez construire une "librairie statique" (static library) comme type de projet ("Fichier - nouveau projet" et choisir "librairie statique");
- ajouter "eratoslib.cpp" à ce nouveau projet
- construire un fichier "eratoslib.h" contenant les "#include <...>", les définitions
de constantes, les définitions de types et les prototypes de vos fonctions
;
- inclure le fichier "eratoslib.h" dans "eratoslib.cpp"
(commande #include "eratoslib.h");
- retirer toute procédure "main" de eratoslib.cpp ;
- compiler "eratoslib.cpp" pour obtenir un fichier "eratoslib.a"
- définir un nouveau projet de type "Console application"
- écrire votre ou vos procédures de décomposition en facteurs premiers
dans un fichier "decom.cpp" en utilisant toute les procédures
nécessaires situées dans "eratoslib" ;
- inclure "eratoslib.h" dans "decomp.cpp" afin que le
compilateur trouve les prototypes des fonctions de "eratoslib"
utilisées dans "decomp.cpp" ;
- établir un lien entre "decomp.cpp" et "eratoslib.obj"
afin qu'à l'exécution le programme trouve le code compilé des procédures
de "eratoslib". En Dev Cpp, aller dans "Projet - Options du projet " puis dans l'onglet "Paramètres" et inclure le fichier "eratoslib.a" dans la partie "Editeur de liens"
- compiler et exécuter votre programme de décomposition.