Cod sursa(job #2917478)

Utilizator alin.gabrielAlin Gabriel Arhip alin.gabriel Data 5 august 2022 12:59:51
Problema Ciurul lui Eratosthenes Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
using namespace std;

#define N 2000001

ifstream f("ciur.in");
ofstream g("ciur.out");

int n, cnt;

int main() {
    f >> n;
    // cnt este numarul total al numerelor neprime
    // initial avem n / 2 numere neprime - toate numerele pare
    // cu exceptia lui 2, dar includem si pe 1 ca neprim.
    cnt = n / 2;

    for (int i = 3; i <= sqrt(n); i+=2)
        // cum gasim un numar neprim > k, il marcam
        for (int k = i + 2; k <= n; k+=2)
            if (k % i == 0)
                cnt++;

    // rezulta ca n - cnt este numarul numerelor prime
    g << n - cnt << "\n";
    return 0;
}