Cod sursa(job #1010826)
| Utilizator | Data | 15 octombrie 2013 19:25:21 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <cstdio>
#include <cassert>
#define MAX_N 2000001
bool prime[MAX_N];
int main() {
FILE *fin, *fout;
fin = fopen( "ciur.in", "r" );
int n;
assert( fscanf( fin, "%d", &n ) == 1 );
fclose( fin );
for ( int i = 2; i * i <= n; ++i )
if ( !prime[i] )
for ( int j = i * i; j <= n; j += i )
prime[j] = true;
int count = 0;
for ( int i = 2; i <= n; ++i )
count += !prime[i] ? 1 : 0;
fout = fopen( "ciur.out", "w" );
fprintf( fout, "%d\n", count );
fclose( fout );
}
