Cod sursa(job #884999)

Utilizator costyv87Vlad Costin costyv87 Data 21 februarie 2013 15:56:06
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
//HighFlow
#include <cstdio>
#include <vector>
#include <string>
#include <string.h>
#include <math.h>
#include <algorithm>
#define fcat(c) while (c!='\n') fscanf(f,"%c",&c)
#define cat(c) while (c!='\n') scanf("%c",&c)
#define For(i,st,dr,k) for (int i=st;i<=dr;i+=k)
#define ll (long long)
#include <bitset>
using namespace std;
FILE *f,*g;

bitset <2000010> p;
int nr=1,n;

void ciur(int n)
{
    int i,j;

    for (i=3;i<=n;i+=2)
        if (p[i]==false)
        {
            nr++;
            if (i<=2000)
                for (j=i*i;j<=n;j+=(2*i))
                        p[j]=true;
        }
}


int main()
{
    f=fopen("ciur.in","r");
    g=fopen("ciur.out","w");

    fscanf(f,"%d",&n);
    ciur(n);
    fprintf(g,"%d",nr);

	return 0;
}