Cod sursa(job #2219228)

Utilizator Simon2712Simon Slanina Simon2712 Data 7 iulie 2018 20:59:42
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>

using namespace std;
ifstream cin("ciur.in");
ofstream cout("ciur.out");
char ciur[2000001];
int main()
{
    int n,cnt,i,j;   ///Daca incepem cautarea nr. de la 2 nu mai trebuie sa setam ciur[0] si ciur[1] :)
    cin>>n;
    for(i=4;i<=n;i+=2)
      ciur[i]=1;
    for(i=3;i*i<=n;i+=2)
    {
      if(ciur[i]==0){
        for(j=i*i;j<=n;j+=i)
          ciur[j]=1;
      }
    }
    cnt=1; ///Nu il mai cautam pe 2 deoarece clar e prim si dupa cautam doar nr. impare deoarece cele pare >2 sunt compuse
    for(i=3;i<=n;i+=2)
      if(ciur[i]==0)
        cnt++;
    cout<<cnt;
    return 0;
}