Cod sursa(job #346937)

Utilizator adibAdrian Bona adib Data 10 septembrie 2009 11:40:18
Problema Fractii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int  x[1000000];
long long r=1;
int totent(long n)
{
int i;
long m;
double t;
//eratostene
memset(x,0,1000000);
i=2;
while (i<=sqrt(n))
  {
    m=2;
    while(m*i<=n)
       {
	  x[m*i]=1;
	  m++;

       }
    i++;
    while(x[i]==1)
      i++;

  }
//end eratostene
//suma eulerphi
for (i=2;i<=n;i++)
{
  if (x[i]==0)
    r+=2*(i-1);
  else
    {
      t=i;
      for (m=2;m<i;m++)
	if (x[m]==0&&i%m==0)
	  {
	  t=t*(1.0-(1.0/m));
	  }
      r+=2*(long long)t;
    }
}
//end suma eulerphi
return 0;
}



int main()
{
FILE *f;
int i;
long n;
f=fopen("fractii.in","r");
fscanf(f,"%ld",&n);
fclose(f);
totent(n);
f=fopen("fractii.out","w");
fprintf(f,"%lld",r);
fclose(f);

return 0;
}