Pagini recente » Cod sursa (job #1368539) | Cod sursa (job #1929798) | Cod sursa (job #2050156) | Cod sursa (job #2264130) | Cod sursa (job #21475)
Cod sursa(job #21475)
#include<string.h>
#include<stdio.h>
void erathostene(int n)
{
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()
{
long n;
FILE *f=fopen("fractii.in", "r");
fscanf(f, "%ld", &n);
fclose(f);
erathostene(n);
return 0;
}