Cod sursa(job #12285)

Utilizator Ady.hAdrian Hada Ady.h Data 3 februarie 2007 13:56:36
Problema Fractii Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>
#include <math.h>

int vec[20],n;

int prim(int x)
{
int i,t=1;
for (i=2;i<=sqrt(x);i++)
		if (x%i==0) t=0;
return t;

}

int totent(int x)
{
int i,fi;
fi=x;
for (i=2;i<=x/2;i++)
	if (x%i==0){
		if (prim(i)) fi=fi*(i-1)/i;
			}
if (fi==x) return (x-1);
	else return fi;  
}

int main()
{
unsigned long long numar;
int i;
FILE *pf;
pf=fopen("fractii.in","r");
fscanf(pf,"%d",&n);
fclose(pf);
numar=1;
for (i=2;i<=n;i++)
	numar+=(unsigned long long)(2*totent(i));
pf=fopen("fractii.out","w");
fprintf(pf,"%llu",numar);
fclose(pf);
return 0;
}