Cod sursa(job #2162497)

Utilizator vladbatalanBatalan Vlad vladbatalan Data 12 martie 2018 11:33:45
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("ciur.in");
ofstream fout("ciur.out");

int cmmdc(int a, int b)
{
    int r = a%b;
    while(r!=0)
    {
        a = b;
        b = r;
        r = a%b;
    }
    return b;
}

int ciur(int n)
{
    if(n==1) return 0;
    bitset<2000001> b;
    int nr = 1;
    for(int i=4; i<=n; i+=2)
        b[i] = 1;
    for(int i=3; i<=n; i+=2)
    {
        if(!b[i])
        {
            for(int k=2; i*k<=n; k++)
                b[i*k] = 1;
            nr++;
        }
    }
    return nr;
}

int main()
{
    int n;
    fin >> n;
    fout<<ciur(n);
    return 0;
}