Cod sursa(job #1126031)

Utilizator victormarinMarin Victor victormarin Data 26 februarie 2014 20:51:05
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <cstdio>
#include <bitset>
#define filein "ciur.in"
#define fileout "ciur.out"
using namespace std;

bitset <2000005> prime;

int n,nrp;

void ciur();
void citire();
void afisare();

int main()
{
    citire();
    ciur();
    afisare();
    return 0;
}

void ciur()
{
    int i,j;
    for (i=2; i<=n; i++)
        if (prime[i]==0)
        {
            nrp++;
            if (i*i<=n)
                for (j=i+i; j<=n; j+=i)
                    prime[j]=1;
        }
}

void citire()
{
    FILE *in;
    in=fopen(filein,"r");
    fscanf(in,"%d",&n);
    fclose(in);
}

void afisare()
{
    FILE *out;
    out=fopen(fileout,"w");
    fprintf(out,"%d",nrp);
    fclose(out);
}