Cod sursa(job #1013641)

Utilizator mucenic_b101Bogdan Mucenic mucenic_b101 Data 21 octombrie 2013 14:37:49
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<stdio.h>
#include<math.h>
#include<iostream>
#include<bitset>

using namespace std;

#define MAXN 2000001

bitset <MAXN> ciur;

int main () {

    FILE *f,*g;
    f=fopen("ciur.in","r");
    g=fopen("ciur.out","w");

    int n, i, j,nr;

    fscanf(f,"%d",&n);

    int p = sqrt(n);
    for( int i = 3; i <= p; i= i + 2) {

        for(j= i * i ; j <= n; j = j + 2 * i) {
            ciur[j]=1;
        }
    }

    nr=1;
    for(i=3; i<=n; i += 2)
        if(ciur[i]==0)
            nr++;

    fprintf(g,"%d\n",nr);

    fclose(f);
    fclose(g);

    return 0;
}