Cod sursa(job #1850412)

Utilizator NicusorTelescu Nicolae Nicusor Data 18 ianuarie 2017 17:30:54
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <cstdio>

using namespace std;

bool v[2000001];

int ciur(int n)
{
    int nr=1;
    for (int i=4;i<=n;i+=2)
        v[i]=1;
    for (int i=3;i<=n;i+=2)
        if (v[i]==0)
        {
            nr++;
            if ((long long)i*i<=2000000)
            for (int j=i*i;j<=n;j+=i)
                v[j]=1;
        }
    return nr;
}

int main()
{
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);
    int n;
    scanf("%d ",&n);
    printf("%d ",ciur(n));
}