Cod sursa(job #22594)

Utilizator alinaddoca alina alinad Data 26 februarie 2007 21:09:26
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
#include<string.h>

long n, eul[1000001];
char p[1000001];

void erathostene()
{
 
 long i, j, pr, q;
 long s=1, rap;

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

 for(i=2; i<=n; i++)
   if(p[i]==0)
    {
     eul[i]=eul[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, "%ld", s);
 fclose(f);
}



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


 erathostene();

 return 0;

}