diff --git a/Makefile b/Makefile
index 4549cfa3264aa69df91cb300fe9f6f7cfe0a9e1b..021a54b0f64f3ac985a57f0a36b9b3154801077c 100644
--- a/Makefile
+++ b/Makefile
@@ -13,7 +13,7 @@ test.o : test.c run.h
 
 
 clean :
-		rm -rf *.o
+	rm -rf *.o
 
 mrproper: clean
-		rm -rf run
+	rm -rf run
diff --git a/run b/run
new file mode 100755
index 0000000000000000000000000000000000000000..f6f05044826d3e4910610b1ee7c7844941444e78
Binary files /dev/null and b/run differ
diff --git a/run.c b/run.c
index d6df98ed804e3f83277e19648938740be9a9cf18..b76eb5fa9425d02bd8dec53952405ac3f4152960 100644
--- a/run.c
+++ b/run.c
@@ -1,6 +1,9 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/stat.h>
 
 int is_div(int number, int i) { // Vérifie si i est un diviseur de number.
     return (number % i == 0) ; // revoi 0 si le nombre n'est pas divisible par i et 1 si il est divisible
@@ -23,10 +26,12 @@ int* prime_divs(int number){
     ptr[1] = 0;
 
     int i;
+    int len = 0;
 
     for (i = 2; i < number; i++){
         if (is_prime(i) == 1 && is_div(number, i)){
 			ptr[i] = i;
+            len++;
         }
         else
         {
@@ -35,7 +40,20 @@ int* prime_divs(int number){
 
     }
     ptr[i] = -1;
-    return ptr;
+    int *result;
+    result = malloc(sizeof(int)*len +sizeof(int));
+    int j =0;
+    for (int i = 0; ptr[i] != -1; i++)
+    {
+        if(ptr[i] != 0){
+            result[j] = ptr[i];
+            j++;
+        }
+        
+    }
+    result[j] = -1;
+    free(ptr);
+    return result;
 
 }
 
@@ -52,6 +70,41 @@ void afficherListe(int* tab) { // afficher la liste
 
 }
 
+int run (char *input,char *output){
+
+    FILE *file1 = NULL;
+    FILE *file2 = NULL;
+
+    char chaine[15];
+
+    file1 = fopen(input,"r");
+    if (file1 == NULL){return -1;}
+
+    file2 = fopen(output,"w+");
+    if (file2 == NULL){
+        fclose(file1);
+        return -1;
+    }
+
+    while (fgets(chaine,15,file1) != NULL){
+
+        int *pr_divs = prime_divs(atoi(chaine));
+        fprintf(file2,"%s ",chaine);
+        for (int i = 0; pr_divs[i] != -1; i++)
+        {
+            fprintf(file2,"%d ",pr_divs[i]);
+        }
+        fputc('\n',file2);
+        
+    }
+
+    fclose(file1);
+    fclose(file2);
+
+    return 0;
+
+}
+
 /* int main() {
     // test pour is_div(int number, int i)
     int number = 10 ;