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 :

  1. 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 ;
  2. enregistrer ce nouveau source sous le nom eratoslib.cpp ;
  3. 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");
  4. ajouter "eratoslib.cpp" à ce nouveau projet
  5. construire un fichier "eratoslib.h" contenant les "#include <...>", les définitions de constantes, les définitions de types et les prototypes de vos fonctions ;
  6. inclure le fichier "eratoslib.h" dans "eratoslib.cpp" (commande #include "eratoslib.h");
  7. retirer toute procédure "main" de eratoslib.cpp ;
  8. compiler "eratoslib.cpp" pour obtenir un fichier "eratoslib.a"
  9. définir un nouveau projet de type "Console application"
  10. é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" ;
  11. inclure "eratoslib.h" dans "decomp.cpp" afin que le compilateur trouve les prototypes des fonctions de "eratoslib" utilisées dans "decomp.cpp" ;
  12. é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"
  13. compiler et exécuter votre programme de décomposition.