Cod sursa(job #2705280)

Utilizator ivanciuc.dragos22Ivanciuc Dragos Vasile ivanciuc.dragos22 Data 12 februarie 2021 12:18:06
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>

using namespace std;

ifstream f("ciur.in");
ofstream g("ciur.out");

bool c[2000001];
char p [1000000/2+1];
int getTheNumber(int n) {
    int i, j, nr = 1;
    for (i = 1; ((i * i) << 1) + (i << 1) <= n; i += 1) {
      if (p[i] == 0) {
        for (j = ((i * i) << 1) + (i << 1); (j << 1) + 1 <= n; j += (i << 1) + 1) {
          p[j] = 1;
        }
      }
    }
    for (i=1; 2 * i + 1 <= n; ++i)
        if (p[i] == 0) nr++;
    return nr;
  }
int n;
int main()
{
    f >> n;
    g << getTheNumber(n);
    return 0;
}