Cod sursa(job #24343)

Utilizator alinaddoca alina alinad Data 2 martie 2007 08:45:12
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
#include<string.h>

long n;

void erathostene()
{
 char p[1000001];
 memset(p, 0, 1000001);

 long i, j, pr, q, eul[1000001];
 long rap;
 float s=1;


 for(i=1; i<=n; i++)
  eul[i]=i;

 for(i=2; i<=n; i++)
   if(p[i]==0)
    {
     eul[i]=i-1;
     for(j=i+i; j<=n; j+=i)
       {
	p[j]=1;
	rap=eul[j]/i;
	eul[j]=eul[j]-rap;
       }
    }


 FILE *f=fopen("fractii.out", "w");
 /*for(i=1; 2*i+1<=n; ++i)
  if((p[i>>3]&(1<<(i&7)))==0)
    {
     fprintf(f, "%ld ", 2*i+1);
     s++;
    } */

 for(i=2; i<=n; i++)
  s=s+2*eul[i];

 fprintf(f, "%.0f", s);
 fclose(f);
}



int main()
{
 FILE *f=fopen("fractii.in", "r");
 fscanf(f, "%ld", &n);
 fclose(f);


 erathostene();

 return 0;

}