Cod sursa(job #885367)

Utilizator raulmuresanRaul Muresan raulmuresan Data 21 februarie 2013 21:34:50
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>
#include <bitset>

using namespace std;
int i,aux,n,b,k,j,p,m,s,cont;
#define dim 2000001
//char v[dim];

bitset <dim> ciur;

int main()
{
    freopen ("ciur.in","r",stdin);
    freopen ("ciur.out","w",stdout);

    scanf("%d",&n);
    for(i=1;i<=n;i++) ciur[i]=1;
    ciur[1]=0;
    for(i=2;i<=n;i++)
        if (ciur[i]==1){
            cont++;
            for(j=2;j<=n/i;j++)
                ciur[i*j]=0;

        }

     /*for(int i=2;i<n;++i){
        ++i;
        if(!v[i]){
            ++f;
            for(int j=i;j<=n/i;++j){
                v[j*i]=1;
                ++j;
            }
        }
    }*/


    printf("%hd\n",cont);

}