Cod sursa(job #3284767)

Utilizator drsbosDarius Scripcaru drsbos Data 12 martie 2025 10:19:09
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <stack>
#include <queue>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <set>
#include <cstring>
#include <map>
#include <string>
#include <bitset>
#include <unordered_map>
#include <unordered_set>
#define oo 2000000
#define MOD 1000000007
using namespace std;

ifstream fin("ciur.in");
ofstream fout("ciur.out");
const int N = 2e6;
bitset<N + 1>ciur;
int n;
void ciurr()
{
	ciur[0] = ciur[1] = 1;
	for (int i = 4; i <= 2000003; i += 2)
		ciur[i] = 1;
	for (int i = 3; i*i <= 2000003; i+=2)
	{
		if (!ciur[i])
		{
			for (int j = i * i; j <= 2000003; j+=2*i)
				ciur[j] = 1;
		}
	}
}
int main()
{
	int cnt = 0;
	fin >> n;
	ciurr();
	for (int i = 1; i <= n; i++)
	{
		if (ciur[i] == 0)
			cnt++;
	}
	fout << cnt;
}