Cod sursa(job #1467282)

Utilizator SilviuIIon Silviu SilviuI Data 3 august 2015 09:55:01
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>
#include <iostream>
#include <cstring>
#include <stdlib.h>
#include <time.h>
#include <bitset>
#include <string>
#include <vector>
#include <math.h>
#include <stack>
#include <queue>
#include <list>
#include <set>
#include <limits.h>
#include <algorithm>
#include <deque>
#define nmax 2000010
using namespace std;
int n,i,j,nr;
bitset <nmax> fr;
int main() {
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&n); nr=n-1;
for (i=2;i*i<=n;i++)
    if (fr[i]==0) {
        for (j=i*i;j<=n;j+=i) {
            if (fr[j]==0) nr--; fr[j]=1;
        }
}
printf("%d\n",nr);
return 0;
}