Cod sursa(job #2922946)

Utilizator PingStrpewpewpac PingStr Data 10 septembrie 2022 19:01:09
Problema Ciurul lui Eratosthenes Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <math.h>

using namespace std;

int main()
{
    ifstream cin("ciur.in");
    ofstream cout("ciur.out");


    int n;
    cin>>n;
    if (n < 2 || n > 2000000)
        return 1;
    int A[n + 1];

    for (int i = 2; i <= n; i++)
        A[i] = 0;
        
    A[0] = 1;
    A[1] = 1;

    for (int i = 2; i <= sqrt(n); i++)
    {
        if(A[i] == 0)
        {
            for (int j = 2; j <= n / i; j++)
                A[i*j] = 1;
        }
    }
    int cnt = 0;

    for (int i = 0; i < n; i++)
    {
        if (A[i] == 0)
            cnt++;
    }
    cout<<cnt;

    cin.close();
    cout.close();

    return 0;
}