Cod sursa(job #2522016)

Utilizator Narcis09Grecu Narcis Narcis09 Data 11 ianuarie 2020 20:42:23
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.45 kb
#include <iostream>
#include <fstream>
using namespace std;
#define dm 2000001
ifstream fin("ciur.in");
ofstream fout("ciur.out");

bool ciur[dm];

void er(int dmax){
	int i, j, x;
	x=dmax/2;
	ciur[0]=ciur[1]=1;
	for (i=2;i<=x;++i) ciur[2*i]=1;
	for (i=3;i*i<=dmax;i+=2)
		if (ciur[i]==0){
			x=dmax/i;
			for (j=3;j<=x;j+=2)
				ciur[i*j]=1;
		}
}

int main(){
	int n, k=1, i;
	fin>>n;
	er(n);
	for (i=3;i<=n;i+=2)
		if (ciur[i]==0){
			++k;
		}
	fout<<k;
}