diff --git a/mainProjet3.c b/mainProjet3.c
new file mode 100644
index 0000000000000000000000000000000000000000..6a5ac80081e26b2b3597d33ca2d29a3f3275fadb
--- /dev/null
+++ b/mainProjet3.c
@@ -0,0 +1,72 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.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
+}
+
+int is_prime(int number) { // Vérifie si number est un nombre premier. Return 1 si il est premier, 0 sinon
+    for (int i = 2 ; i < number ; i++) { //regarde les differents nombres pouvant etre diviser number
+        if (is_div(number,i) != 0) { // si i peut diviser number
+            return 0 ; //renvoi 0 => FAUX
+        }
+    }
+    return 1 ; //sinon => VRAI
+}
+
+int* prime_divs(number){
+
+    int *ptr;
+    ptr = malloc(sizeof(int)*number);
+    ptr[0] = 0;
+    ptr[1] = 0;
+
+    int i;
+
+    for (i = 2; i < number; i++){
+        if (is_prime(i) == 1 && is_div(number, i)){
+			ptr[i] = i;
+        }
+        else
+        {
+            ptr[i] = 0;
+        }
+
+    }
+    ptr[i] = -1;
+    return ptr;
+
+}
+
+void afficherListe(int* tab) { // afficher la liste
+
+    for (int i = 0; tab[i] != -1; i++)
+    {
+        if (tab[i] != 0){
+        printf("%d\n",tab[i]);
+
+        }
+    }
+
+
+}
+
+int main() {
+    // test pour is_div(int number, int i)
+    int number = 10 ;
+    int number1 = 11 ;
+    int i = 3 ;
+    printf("%d\n",is_div(number,i)) ; // 1
+    printf("%d\n",is_div(number1,i)) ; // 0
+    // test pour is_prime(int number)
+    int number2 = 1498498411 ;
+    int number3 = 5 ;
+    int number4 = 14545144 ;
+    printf("%d\n",is_prime(number2)) ; // 0
+    printf("%d\n",is_prime(number3)) ; // 1
+    printf("%d\n",is_prime(number4)) ; // 0
+    //prime divis
+    afficherListe(prime_divs(number));
+    return 0;
+}
\ No newline at end of file