Cod sursa(job #1454185)

Utilizator SilviuIIon Silviu SilviuI Data 25 iunie 2015 17:41:42
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 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 <map>
#include <limits.h>
#include <algorithm>
#include <deque>
#define nmax 2000010
#define inf 0x3f3f3f3f
using namespace std;
int n,i,nr,j;
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",nr);
return 0;
}