Cod sursa(job #3203192)

Utilizator laurentiu.maticaMatica Laurentiu-Andrei laurentiu.matica Data 13 februarie 2024 11:28:18
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.51 kb
// #include <iostream>

#include <fstream>
#include <bitset>

using namespace std;

ifstream cin("ciur.in");
ofstream cout("ciur.out");

bitset<2000001>v;

void ciur()
{
	v[0] = v[1] = 1;
	for (int i = 4; i < 2000001; i += 2)
		v[i] = 1;
	for(int i = 3; i * i < 2000001; i += 2)
		if (!v[i])
			for (int j = i * i; j < 2000001; j += 2 * i)
				v[j] = 1;
}
int main()
{
	int n;
	cin >> n;
	ciur();
	int nr = 0;
	for (int i = 2; i <= n; i++)
		if (!v[i])
			nr++;
	cout << nr;
	return 0;
}