Cod sursa(job #2529060)

Utilizator Tudor06MusatTudor Tudor06 Data 22 ianuarie 2020 21:59:07
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>

using namespace std;

const int NMAX = 2e6;

char ciur[NMAX + 1];

int main() {
    ifstream fin( "ciur.in" );
    ofstream fout( "ciur.out" );
    int n, i, j, prime = 0;
    fin >> n;
    for ( i = 3; i * i <= n; i += 2 ) {
        if ( ciur[i] == 0 && i % 2 == 1 ) {
            for ( j = i * i; j <= NMAX; j += i ) {
                ciur[j] = 1;
            }
        }
    }
    for ( i = 3; i <= n; i += 2 ) {
        prime += 1 - ciur[i];
        cout << (char)(ciur[i] + '0') << ' ';
    }
    prime += ( n >= 2 );
    fout << prime;
    return 0;
}