Cod sursa(job #2640031)

Utilizator AndreiPaval03Andrei Paval AndreiPaval03 Data 4 august 2020 19:11:10
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <bits/stdc++.h>

using namespace std;

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

int max(int a, int b)
{
	return a;
}

int main()
{
    int n, num = 1;
    bool ciur[1000000] = {0};
    
    fin >> n;

    for (int i = 1; ((i << 1) + 1) * ((i << 1) + 1) <= n; ++i)
    	if(ciur[i] == 0)
    	{
    		for (int j = ((i * i) << 1) + (i << 1); (j << 1) + 1 <= n; j += (i << 1) + 1)
    			ciur[j] = true;
    	}
    for (int i = 1; (i << 1) + 1 <= n; ++i)	
    	if (ciur[i] == 0)
    		++num;

    fout << num;

	return 0;
}