Cod sursa(job #975075)

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

int n,sol;
bool sieve[maxn];

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

    for(i=3;i*i<=n;i+=2)
      if(!sieve[i])
      {
        sol++;
        for(j=i;i*j<=n;j++)
         sieve[i*j]=true;
      }

    for(;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;
}