diff --git a/fonctionlaplusotpi.c b/fonctionlaplusotpi.c new file mode 100644 index 0000000000000000000000000000000000000000..834e131f564241dd602e8060ab238a591f8e68f4 --- /dev/null +++ b/fonctionlaplusotpi.c @@ -0,0 +1,47 @@ +#include <stdio.h> +#include <stdlib.h> +/* + * Ce code se compose en 4 parties : + * 1. avec la fonction <fscanf>, on met le chiffre du fichier dans une variable <chiffre> + * 2. on écris ce chiffre dans le fichier de sortie avec <fprintf> + * 3. on trouve les nombres premiers divisant <chiffre> qu'on écrit ensuite dans le fichier de sortie avec <fprintf> + * 4. toujours avec <fprintf>, on n'oublie pas de mettre "\n" pour passer à la ligne suivante + * + */ +int main() { + FILE *f_in = fopen("example_input.txt", "r"); + FILE *f_out = fopen("example_output.txt", "w"); + if (f_in == NULL) exit(1); + if (f_out == NULL) exit(1); + + int chiffre = 0; + int count1=0; + int count2=0; + + while (fscanf(f_in, "%d", &chiffre) != EOF) //EOF == end of file + { + fprintf(f_out, "%d ", chiffre); + while(chiffre%2==0) + { + if(count1==0) fprintf(f_out, "%d ", chiffre); + chiffre=chiffre/2; + count1+=1; + } + for(int i=3;i*i<=chiffre;i+=2) + { + while (chiffre % i == 0) + { + if (count2 == 0) fprintf(f_out, "%d ", i); + chiffre = chiffre / i; + count2 += 1; + } + count2 = 0; + } + if(chiffre>2) fprintf(f_out, "%d ",chiffre); + fprintf(f_out, "\n"); + } + + fclose(f_in); + fclose(f_out); + return 0; +} \ No newline at end of file