Cod sursa(job #307384)
Utilizator | Nitu Doru Constantin doru.nitu | Data | 24 aprilie 2009 06:59:37 |
---|---|---|---|
Problema | Fractii | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.94 kb |
#include<stdio.h>
#include<math.h>
FILE *f=fopen("fractii.in","r"),
*g=fopen("fractii.out","w");
int n,i,j,nr,k,i1,nr1;
long double fis,fij,fi;
int main()
{ fscanf(f,"%d",&n);
nr=3;
for(i=3;i<=n;i++) {
fi=i;
i1=i;
if(i1%2==0) { fi/=2;
while(i1%2==0) i1/=2;
}
k=sqrt(i1);
fis=1;
fij=1;
for(j=3;j<=k;j=j+2) { if(i1%j==0) fi/=j,fi*=(j-1);
while(i1%j==0) i1/=j;
}
if(i1!=1) { fi*=(i1-1);
fi/=i1;
}
nr1+=fi;
}
nr1=nr1*2;
nr=nr+nr1;
fprintf(g,"%d\n",nr);
fclose(f);
fclose(g);
return 0;
}