Cod sursa(job #2498659)

Utilizator StratonStangaciu Sofian Straton Data 24 noiembrie 2019 10:26:32
Problema Ciurul lui Eratosthenes Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
using namespace std;

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

bool v[2000001];

bool ePrim(int a){

for(int i=2;i*i<=a;i++)
    if(a%i==0)
        return false;
    return true;
}

int main()
{int n,nr=2;
    fin>>n;
    for(int i=2;i<=n;i++){
        v[2*i]=1;
        if(2*i>n)
            break;
    }
    for(int i=3;i<=n;i++){
        v[3*i]=1;
        if(3*i>n)
            break;
    }
    int in=4;
    for(int i=4;i<=n;i++){
        if(v[i]==0){
            nr++;
            int x=i;
            while(x*in<n){
                v[x*in]=1;
                x++;
            }
        in++;
        }else continue;
    }

    fout<<nr;

    return 0;
}