Pagini recente » Cod sursa (job #1367438) | Cod sursa (job #1942143) | Cod sursa (job #2149315) | Cod sursa (job #1315412) | Cod sursa (job #21312)
Cod sursa(job #21312)
#include<stdio.h>
#include<mem.h>
long n;
void erathostene()
{
long s=1, q, pr;
long i, j;
char p[62500];
memset(p, 0, 62500);
for(i=1; (i*i<<1)+(i<<1)<=n; i+=1)
{
if((p[i>>3] & (1<<(i&7)))==0)
for(j=((i*i)<<1)+(i<<1); (j<<1)+1<=n; j+=(i<<1)+1)
p[j>>3] |=(1<<(j&7));
}
FILE *f=fopen("fractii.out", "w");
/*for(i=1; 2*i+1<=n; ++i)
if((p[i>>3]&(1<<(i&7)))==0)
{
fprintf(f, "%d ", 2*i+1);
s++;
} */
s=1;
for(j=2; j<=n; j++)
{
pr=j;
if(j%2==0)
pr=pr/2;
for(i=1; 2*i+1<=n && 2*i+1<=j; ++i)
if((p[i>>3]&(1<<(i&7)))==0)
if((j%(2*i+1)==0))
{
q=2*i+1;
pr=pr-pr/q;
}
s=s+2*pr;
}
fprintf(f, "%ld", s);
fclose(f);
}
int main()
{
FILE *f=fopen("fractii.in", "r");
fscanf(f, "%ld", &n);
fclose(f);
erathostene();
return 0;
}