From 5a4792dbe837d3f3a72b3ac1ebc04c2254ba86a8 Mon Sep 17 00:00:00 2001
From: j-twite <jonathan.twite@student.uclouvain.be>
Date: Mon, 27 Apr 2020 17:04:21 +0200
Subject: [PATCH] first project version's submission

---
 Factor.h  |  7 ++++---
 Makefile  |  8 ++++----
 README.md | 41 +++++++++++++++++++++++++++++++++++++++++
 Test.c    |  9 ++++++---
 prime.c   |  8 ++++----
 5 files changed, 59 insertions(+), 14 deletions(-)

diff --git a/Factor.h b/Factor.h
index ebb5d7a..3bc29f1 100644
--- a/Factor.h
+++ b/Factor.h
@@ -12,7 +12,7 @@ void primeFactors(struct dblist *l,int n){// prends un fichier et écrit un enti
 
     int count1=0;
     int count2=0;
-
+    int x = n;
     PushBack(l,n);
     while (n%2 == 0)
     {
@@ -20,7 +20,8 @@ void primeFactors(struct dblist *l,int n){// prends un fichier et écrit un enti
         n = n/2;
         count1+=1;
     }
-    for (int i = 3; i*i <= n; i = i+2)
+    int i;
+    for (i = 3; i*i <= n; i = i+2)
     {
         while (n%i == 0){
 
@@ -30,7 +31,7 @@ void primeFactors(struct dblist *l,int n){// prends un fichier et écrit un enti
         }
         count2=0;
     }
-    if (n > 2)
+    if (n > 2 && n != x)
         PushBack(l,n);
 
 
diff --git a/Makefile b/Makefile
index 2df1df3..62f7be5 100644
--- a/Makefile
+++ b/Makefile
@@ -10,8 +10,9 @@ fact: prime.c
 
 # make test compile votre programme \
   et exécute les tests unitaires.
-test: #UnitTestFile
-	 #make fact
+test: Test.c
+	 gcc -o test Test.c -lcunit
+	 ./test
 	  #./UnitTestFile
 
 # clean the file directory, delete: \
@@ -21,5 +22,4 @@ test: #UnitTestFile
 clean: fact
 	rm -rf *o fact
 	rm -rf *o test
-
-
+	rm -rf *o CUnitAutomated-Results.xml
diff --git a/README.md b/README.md
index a1c6c21..0c04d53 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,43 @@
 # Projet_Q4_Groupe_O4
 
+
+Description des fichiers:
+
+@Factor.h
+Un file header qui reprend la fonction de factorisation
+
+@Fonction_liste.h
+Un file header qui reprend toutes les fonctions liées aux liste chaînées
+
+@prime.c
+Le code source à compiler pour obtenir le programme
+
+@Test.c
+Un fichier qui reprend des test unitaires du programme
+
+@Makefile
+Le fichier reprenant les commandes à exécuter pour lancer le code de façon plus agréable
+___________________________
+
+Pour lancer le code:
+
+1) télécharger le projet
+
+2) extraire le fichier
+
+3) ouvrir le dossier qui contient le fichier via le terminal
+
+4) entrer la commande:
+
+- make fact: produit l'exécutable fact qui contient le programme.
+
+- make test: compile le programme et exécute les tests unitaires.
+
+- make clean: nettoie le dossier: supprime l'exécutable fact s'il est présent ainsi que les fichiers auxiliaires produits durant la compilation de fact et des tests.
+
+- ./fact -N x fInput fOutput: lance le programme exécutable fact qui factorisera les nombres présent dans le fichier fInput et retournera en output les résultats dans le fichier fOutput.
+fInput et fOutput correspondent respectivement aux noms complets des fichiers input et output. 
+x correspond au nombre de threads.
+
+NB: malheureusement nous ne sommes que 4 à travailler sur ce groupe et aucun de nous 4 n'a su encore se familiariser avec les threads.
+
diff --git a/Test.c b/Test.c
index fd28a9a..717518c 100644
--- a/Test.c
+++ b/Test.c
@@ -10,7 +10,7 @@
 #include "Fonction_liste.h"
 
 int entier(int n){ // fonction qui retourne le l'entier via la fonction primeFactor(...)
-    struct dblist *Maliste;
+    struct dblist *Maliste = malloc(sizeof(struct dblist));
     Init(Maliste);
     primeFactors(Maliste,666343);
     struct elem *runner;
@@ -18,10 +18,11 @@ int entier(int n){ // fonction qui retourne le l'entier via la fonction primeFac
     int a;
     a=runner->value;
     Clear(Maliste);
+    free(Maliste);
     return a;
 }
 int diviseur1(int n){ // fonction qui retourne le l'entier via la fonction primeFactor(...)
-    struct dblist *Maliste;
+    struct dblist *Maliste = malloc(sizeof(struct dblist));
     Init(Maliste);
     primeFactors(Maliste,666343);
     struct elem *runner;
@@ -29,10 +30,11 @@ int diviseur1(int n){ // fonction qui retourne le l'entier via la fonction prime
     int a;
     a=runner->value;
     Clear(Maliste);
+    free(Maliste);
     return a;
 }
 int diviseur2(int n){ // fonction qui retourne le l'entier via la fonction primeFactor(...)
-    struct dblist *Maliste;
+    struct dblist *Maliste = malloc(sizeof(struct dblist));
     Init(Maliste);
     primeFactors(Maliste,666343);
     struct elem *runner;
@@ -40,6 +42,7 @@ int diviseur2(int n){ // fonction qui retourne le l'entier via la fonction prime
     int a;
     a=runner->value;
     Clear(Maliste);
+    free(Maliste);
     return a;
 }
 
diff --git a/prime.c b/prime.c
index f13d894..b0af4af 100644
--- a/prime.c
+++ b/prime.c
@@ -8,10 +8,10 @@
 
 
 int main(int argc, char *argv[]) {
-    printf("argv[1]: %s\n", argv[1]); // argv[1] = input file path
-    printf("argv[2]: %s\n", argv[2]); // argv[2] = output file path
-    FILE *f_in = fopen(argv[1], "r");
-    FILE *f_out = fopen(argv[2], "w");
+    printf("argv[4]  (fileinput): %s\n", argv[3]); // argv[1] = input file path
+    printf("argv[5] (fileoutput): %s\n", argv[4]); // argv[2] = output file path
+    FILE *f_in = fopen(argv[3], "r");
+    FILE *f_out = fopen(argv[4], "w");
     if (f_in == NULL) exit(1);
     if (f_out == NULL) exit(1);
 
-- 
GitLab