Cod sursa(job #16597)
Utilizator | Data | 13 februarie 2007 19:14:38 | |
---|---|---|---|
Problema | Fractii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.44 kb |
#include<stdio.h>
FILE *f;
int n;
int euler(int k)
{
int x,d;
float p=1;
x=k;
if(x%2==0)
p=0.5;
while(x%2==0)
x=x/2;
for(d=3;d<=x;d++)
{
if(x%d==0)
p=p-p/d;
while(x%d==0)
x=x/d;
d++;
}
return 2*k*p;
}
void main()
{
int s=1,l;
f=fopen("fractii.in","r");
fscanf(f,"%d",&n);
fclose(f);
for (int i=2;i<=n;i++)
{
l=euler(i);
s+=l;
}
f=fopen("fractii.out","w");
fprintf(f,"%d",s);
}