Cod sursa(job #3349661)

Utilizator filipdanieloanFilip-Daniel Oancea filipdanieloan Data 1 aprilie 2026 14:28:31
Problema Ciurul lui Eratosthenes Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdio.h>
#include <string.h>

FILE *fin, *fout;

_Bool isPrime[2000001];

void ciur(int n) {
    memset(isPrime, 1, sizeof(isPrime));
    isPrime[0] = isPrime[1] = 0;
    for(int i = 2; i * i <= n; ++i) {
        if(isPrime[i] == 1) {
            for(int j = i * i; j <= n; j += i) {
                isPrime[j] = 0;
            }
        }
    }
}

int main(void) {
    fin = fopen("ciur.in", "r");
    int n;
    fscanf(fin, "%d", &n);
    fclose(fin);

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

    fout = fopen("ciur.out", "w");
    fprintf(fout, "%d\n", cnt);
    fclose(fout);

    return 0;
}