Cod sursa(job #2780924)

Utilizator teodorescunicolasteodorescu nicolas alexandru teodorescunicolas Data 8 octombrie 2021 09:54:48
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>
#include <bitset>

using namespace std;

bitset<2000000> ciur;

int main()
{
    FILE *fin, *fout;
    int n, i, d, cnt;

    fin = fopen( "ciur.in", "r" );
    fout = fopen( "ciur.out", "w" );

    fscanf( fin, "%d", &n );

    ciur[0] = ciur[1] = 1;
    for ( i = 2; i * i <= n; i++ ) {
        if ( ciur[i] == 0 ) {
            for ( d = i * i; d <= n; d += i )
                ciur[d] = 1;
        }
    }

    cnt = 0;
    for ( i = 2; i <= n; i++ ) {
        if ( ciur[i] == 0 )
            cnt++;
    }

    fprintf( fout, "%d", cnt );

    fclose( fin );
    fclose( fout );
    return 0;
}