Cod sursa(job #2857562)

Utilizator Darius_CDarius Chitu Darius_C Data 25 februarie 2022 20:41:33
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
// Ciurul lui Eratosthenes.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <fstream>
#define LIM 2000006
std::ifstream fin("ciur.in");
std::ofstream fout("ciur.out");
using namespace std;

int N;
char ciur[LIM + 1];
int primes = 0;

void Eratostene()
{
    for (int i = 0; i <= LIM; i++)
        ciur[i] = '1';
    ciur[0] = ciur[1] = '0';
    for (int i = 4; i <= LIM; i += 2)
        ciur[i] = '0';
    for (int i = 3; i * i <= LIM; i += 2)
        if (ciur[i] == '1')
            for (int j = i; j * i <= LIM; j += 2)
                ciur[j * i] = '0';

    primes++;
    for (int i = 3; i <= N; i += 2)
        if (ciur[i] == '1')
            primes++;
    fout << primes;
}

int main()
{
    fin >> N;
    Eratostene();
    return 0;
}