diff --git a/main1.c b/main1.c new file mode 100644 index 0000000000000000000000000000000000000000..6a5ac80081e26b2b3597d33ca2d29a3f3275fadb --- /dev/null +++ b/main1.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