Cod sursa(job #2520119)

Utilizator filipasvladVlad Filipas filipasvlad Data 8 ianuarie 2020 23:06:14
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int nr, n;
bool p[100001];

bool prim(int nr)
{
    for(int i=3; i * i <= nr; i+=2)
        if(nr % i == 0)
            return 0;
    return 1;
}
int main()
{
    fin>>n;
    if(n < 2){
        fout << 0;
        return 0;
    }
    p[1] = 0; p[2] = 1;
    for(int i=3; i<=100; i+=2)
        if(prim(i) == 0)
            p[i] = 0;
    for(int i=2; i<=n; i++)
    {
        if(p[i] == 0)
        {
            nr++;
            for(int j = i + i; j<=n; j += i)
            {
                p[j] = 1;
            }
        }
    }
    fout<<nr;

}