Cod sursa(job #24497)

Utilizator axl_gnrMarius Gheorghe axl_gnr Data 2 martie 2007 17:46:15
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
#include<string.h>

long n;
long long int  s;
char div[1000001];
FILE *f;

long E(long i)
{ float fi, a=1.0, b=1.0;
  fi=i;

  long k;
  for(k=2;k<=n;k++)
     if(div[k]=='1' && i%k==0 && k<=i)
       {a*=k-1;
	b*=k;
       }

  fi=a/b*i;

  return (long)fi;
}


int main()
{
  //fstream f("fractii.in",ios::in);
  //f>>n;
  //f.close();
  f=fopen("fractii.in","r");
  fscanf(f,"%ld",&n);
  fclose(f);
  long i=2,k;

  memset(div,'1',n+1);
  while(i<=n)
       {if(div[i]=='1')
	  for(k=2;i*k<=n;k++)
	     div[i*k]='0';
	i++;
       }

  s=1;
  for(i=2;i<=n;i++)
      s+=2*E(i);

  f=fopen("fractii.out","w");
  
  fprintf(f,"%lld\n",s);
                      fclose (f);
  return 0;
}