Cod sursa(job #1364933)
Utilizator | Razvan Brinzea Razzinnator | Data | 27 februarie 2015 21:40:44 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <vector>
using namespace std;
FILE *f = fopen( "ciur.in", "r" );
FILE *g = fopen( "ciur.out", "w" );
int main()
{
int n, marks = 1;
fscanf( f, "%d", &n );
vector<bool> v( n, true );
int root = sqrt(n);
for( int i = 2; i<= root; i++ )
{
if( v[i] == true )
{
for( int j = i*i; j <= n; j = j + i )
{
v[i] = false;
marks++;
}
}
}
fprintf( g, "%d\n", n - marks );
fclose( f );
fclose( g );
return 0;
}