Pagini recente » Cod sursa (job #12260) | Cod sursa (job #3133637) | Cod sursa (job #1611476) | Cod sursa (job #2717504) | Cod sursa (job #248120)
Cod sursa(job #248120)
#include <stdio.h>
#include <math.h>
#define true 1
#define false 0
int n;
void sieve(long, long);
int main(void)
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&n);
sieve(1, n);
printf("\n");
fcloseall();
return 0;
}
void sieve(long L, long U)
{
long k=0, i, j, d;
d=U-L+1;
char *flag=new char[d];
for(i=0;i<d;++i)
flag[i]=true;
for(i=(L%2!=0);i<d;i+=2)
flag[i]=false;
for(i=3;i<=sqrt(U); i+=2)
{
if(i>L && !flag[i-L])
continue;
j=L/i*i;
if(j<L)
j+=i;
if(j==i)
j+=i;
j-=L;
for(;j<d;j+=i)
flag[j]=false;
}
if(L<=1)
flag[1-L]=false;
if(L<=2)
flag[2-L]=true;
for(i=0;i<d;i++)
if(flag[i])
printf("%ld", k);
}