Cod sursa(job #1382281)

Utilizator cautionPopescu Teodor caution Data 8 martie 2015 19:16:30
Problema Ciurul lui Eratosthenes Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>
#include <cmath>
#define MAX_SIZE 2000001
using namespace std;
short v[MAX_SIZE];
void ciur(long n)
{
    v[1]=1;
    long i, j, sqrt_n=sqrt(n);
    for(i=2; i<=sqrt_n; ++i)
        if(!v[i])
            for(j=i*2; j<=n; j+=i) v[j]=1;
}
int main()
{
    ifstream in("ciur.in");
    ofstream out("ciur.out");
    long n, ctr=0;
    in>>n;
    ciur(n);
    for(long i=2; i<=n; ++i)
        if(!v[i]) ++ctr;
    out<<ctr<<endl;
    in.close(); out.close();
    return 0;
}