Pagini recente » Cod sursa (job #667652) | Cod sursa (job #1866511) | Cod sursa (job #2372857) | Cod sursa (job #1415574) | Cod sursa (job #22132)
Cod sursa(job #22132)
#include<stdio.h>
#include<string.h>
long n;
void erathostene()
{
char p[500001];
memset(p, 0, 500001);
long i, j, pr, q;
long s=1;
for(i=1; (i*i<<1)+(i<<1)<=n; i+=1)
if(p[i]==0)
for(j=((i*i)<<1)+(i<<1); (j<<1)+1<=n; j+=(i<<1)+1)
p[j]=1;
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 && 2*i+1<=j; ++i)
if(p[i]==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;
}