Cod sursa(job #16676)

Utilizator thestickTudor A thestick Data 13 februarie 2007 20:56:30
Problema Fractii Scor 90
Compilator c Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <stdio.h>

long phi (long n)
{
  long phi = 1, p;
  for (p = 2; p * p <= n; p += 2)
    {
      if (n % p == 0)
	{
	  phi *= p - 1;
	  n /= p;
	  while (n % p == 0)
	    {
	      phi *= p;
	      n /= p;
	    }
	}
      if (p == 2)
	p--;
    }
  return (n == 1) ? phi : phi * (n - 1);
}

int main()
{
long i=0;
long nn=0;
long long s=0;
FILE *f;
f=fopen("fractii.in","r");
fscanf(f,"%d",&nn);
fclose(f);
nn++;
for(i=2;i<nn;i++)
s+=phi(i);
s*=2;
s++;
FILE *g;
g=fopen("fractii.out","w");
fprintf(g,"%lld\n",s);
fclose(g);
return 0;
}