Cod sursa(job #1382130)

Utilizator andreisecAndrei Tudor andreisec Data 8 martie 2015 15:11:29
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include<stdio.h>

int main(){
    unsigned int i,j,M;
    FILE *in,*out;

    in = fopen("fractii.in","r");
    out = fopen("fractii.out","w+");
    if(!fscanf(in, "%d\n", &M)) return 1;
    
    printf("DBG: %d\n",M);
    
    unsigned long long count = 1ull;//i=1,j=1
    int phi[M];

for (i = 1; i <= M; ++i)
    phi[i] = i-1;
for (i = 2; i <= M; ++i)
    for (j = 2*i; j <= M; j += i)
        {
             phi[j] -= phi[i];    
             //if (phi[j]<0)
                //printf("%d ",i);
                }
//for (i=1;i<=M;i++) phi[i]=i;
//
//for (i=2;i<=M;i++)
//   if (phi[i]==i)
//      for (j=i;j<=M;j+=i) phi[j] /=i, phi[j] *= (i-1);
   
    for (i=1;i<=M;i++){
        count += 2*phi[i];
        //trys = phi[i];
//        for (j=1;j<=i && trys>0;j++)
//            if (i==1 || j==1)
//                count+=2;
//            else
//                if (cmmdc(i,j)==1){
//                    count+=2;
//                    trys--;
//                    //printf("%d %d\n",i,j); 
//                }
    }
    fprintf(out,"%llu",count);
    fclose(in);
    fclose(out);

    printf("%llu", count);
    getchar();
    return 0;
    
}