Pagini recente » Cod sursa (job #2514172) | Cod sursa (job #433387) | Cod sursa (job #654454) | Cod sursa (job #2932323) | Cod sursa (job #1013228)
#include <math.h>
#include <stdio.h>
#include <stdbool.h>
#define MAXSIZE 1000001
#define S 6
#define U 1
bool a[MAXSIZE];
void markup(bool a[],long long i, long long i11,long n)
{ long long j,j2;
for( j =i11+i-1; j<= n; j += i11 )
{
a[j]=true;}
for(j2 = pow(i-1,2);j2 <= n;j2 += i11 )
{
a[j2]=true;
}
}
void markdown(bool a[],long long i, long long i22,long n)
{
long long j;
for(j =pow(i+1,2) ; j <= n ; j += i22)
a[j]=true;
}
int sieve(long n)
{
long p,i,m=2;
p=n/(7)+1;
for(i= 6 ; i <=p ; i += 6)
{
if(! a [ i-U ])
markup(a,i,(i-1)*6,n);
if(! a [ i+1 ])
markdown(a,i,(i+1)*6,n);
}
for(i=6;i<n;i+=6,m+=!a[i+1]+!a[i-1]);
return m;
}
int main()
{
int n;
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%i",&n);
printf("%i",sieve(n));
return 0;
}