Cod sursa(job #2718133)

Utilizator TrainingArcAndrei Slav TrainingArc Data 8 martie 2021 15:00:36
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.42 kb
#include <fstream>

const int N = 2e6;

bool ciur[N+5];

int buildciur(int n) {
	ciur[0] = ciur[1] = 1;
	for(int i=4;i<=N;i+=2) ciur[i] = 1;
	for(int i=3;i*i<=N;i+=2) if(!ciur[i])
		for(int j=i*i;j<=N;j+=2*i) ciur[j] = 1;
	int ans = 0;
	for(int i=1;i<=n;i++) ans+=(1-ciur[i]);
	return ans;
}

int main() {
	std::ifstream fin("ciur.in");
	std::ofstream fout("ciur.out");
	int n;
	fin>>n;
	fout<<buildciur(n);
}