Pagini recente » Cod sursa (job #2494179) | Cod sursa (job #2734149) | Cod sursa (job #2499637) | Cod sursa (job #621938) | Cod sursa (job #21559)
Cod sursa(job #21559)
#include<stdio.h>
#include<string.h>
long n;
void erathostene()
{
char p[62501];
memset(p, 0, 62501);
long i, j, pr, q;
long s=1;
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, "%ld ", 2*i+1);
s++;
} */
for(j=2; j<=n; j++)
{
pr=j;
if(j%2==0)
pr=pr/2;
for(i=1; 2*i+1<=n; ++i)
if((p[i>>3]&(1<<(i&7)))==0 && 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;
}