Cod sursa(job #2705187)

Utilizator MihaiZ777MihaiZ MihaiZ777 Data 12 februarie 2021 09:23:53
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include <fstream>
#include <math.h>

std::ifstream fin("ciur.in");
std::ofstream fout("ciur.out");

bool primeNums[2000005];


void GenerareCiur(int n)
{
  int sqrtNum = sqrt(n);
  for (int i = 2; i <= sqrtNum; i++)
  {
    if (primeNums[i] == true)
    {
      continue;
    }


    //marchez toti multiplii de v[i]
    for (int j = i + i; j <= n; j += i)
    {
      primeNums[j] = true;
    }
    
  }
}


int main() 
{
  int n;
  fin >> n;

  GenerareCiur(n);
  
  int nums = 0;
  for (int i = 2; i < n; i++)
  {
    if (primeNums[i] == false)
      nums++;
  }

  fout << nums;
}