Skip to content
Extraits de code Groupes Projets
fonctionlaplusotpi.c 1,36 ko
Newer Older
  • Learn to ignore specific revisions
  • Romain Lefèbvre's avatar
    Romain Lefèbvre a validé
    #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;
    }