Cod sursa(job #657501)

Utilizator CosminRusuCosmin Rusu CosminRusu Data 6 ianuarie 2012 17:51:35
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
//Ciurul lui Eufratostenes.
#include <fstream>
#include <bitset>
#include<math.h>
using namespace std;
bitset <1000000>ciur;
int main() 
{
    int i,nr=0,n,j;
    float radical;
    //char ciur[2000001];
    ifstream fin("ciur.in");
    ofstream fout("ciur.out");
    fin>>n;
 for(i=4;i<=n;i=i+2)  ciur[i]=1;
nr=1;//pt ca il socotim si pe 2
radical=sqrt(n);
for(i=3; i<=radical; i=i+2)
    {
             if (ciur[i]==0)
             {nr++;
             for (j=i+i;j<=n;j=j+i)
             ciur[j]=1; } }
             
    fout<<nr;
             
    fin.close();
    fout.close();
    return 0;
}