Cod sursa(job #975069)

Utilizator andrettiAndretti Naiden andretti Data 18 iulie 2013 23:48:10
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<stdio.h>
#include<string.h>
#define maxn 2000005
using namespace std;

int n,sol;
bool sieve[maxn];

void solve()
{
    scanf("%d",&n);
    int i,j;

    memset(sieve,true,sizeof(sieve));
    for(i=3;i*i<=n;i+=2)
      if(sieve[i])
       for(j=i;i*j<=n;j++)
        sieve[i*j]=false;

    for(i=3;i<=n;i+=2)
     if(sieve[i]) sol++;
    printf("%d",sol+1);
}

int main()
{
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);

    solve();

    fclose(stdin);
    fclose(stdout);
    return 0;
}