Cod sursa(job #2449998)

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

bool numere[maxi];
int ceva[200000];

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


int main()
{
    int n, i = 1;
    ciur();
    fin >> n;
    while(n > ceva[i])
        ++i;
    if(n == ceva[i])
    fout << i;
    else fout << i - 1;
    return 0;
}