Cod sursa(job #2285605)

Utilizator mihaipriboimihailucapriboi mihaipriboi Data 18 noiembrie 2018 20:10:12
Problema Ciurul lui Eratosthenes Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>
#include <stdlib.h>

char ciur[2000001] = { 1, 1, 0 };

void ciurf() {
    int i, j;
    for( i = 2; i * i <= 2000000; i++ ) {
        if( ciur[i] == 0 ) {
            for( j = i * i; j <= 2000000; j += i ) {
                ciur[j] = 1;
            }
        }
    }
}

int main() {
    int n, cnt, i;
    FILE *fin, *fout;
    fin = fopen( "ciur.in", "r" );
    fout = fopen( "ciur.out", "w" );
    fscanf( fin, "%d", &n );
    ciurf();
    cnt = 0;
    for( i = 2; i <= n; i++ ) {
        if( ciur[i] == 0 ) {
            cnt++;
        }
    }
    fprintf( fout, "%d", cnt );
    fclose( fin );
    fclose( fout );
    return 0;
}