Cod sursa(job #2449989)

Utilizator flee123Flee Bringa flee123 Data 21 august 2019 13:57:41
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
#define maxi 2000001
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");

bool numere[maxi];
int rasp[maxi];

void ciur()
{
    int i, j;
    numere[1] = 1;
    for(i = 4; i < maxi; i+=2)
        numere[i] = 1;
    for(i = 3; i < maxi; i+=2)
    {
        if(!numere[i])
        {
            j = 3;
            while(i * j < maxi)
            {
                numere[i*j] = 1;
                j++;
            }
        }
    }
    rasp[2] = 1;
    for(i = 3; i < maxi; i++)
    {
        if(!numere[i])
        {
            rasp[i] = rasp[i-1]  + 1;
        }
        else
            rasp[i] = rasp[i-1];
    }
}


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