Cod sursa(job #2607207)

Utilizator Gliumarin negai Gliu Data 29 aprilie 2020 15:10:57
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.39 kb
#include <iostream>
#include <fstream>
 
using namespace std;
 
ifstream in("ciur.in");
ofstream out("ciur.out");
 
int const nmax=2000005;
long long int n,pr=0;
unsigned char a[nmax];
int main(){
 
in >>n;
 
for(int i=3;i<=n;i=i+2){
	if(a[i>>4] & (1<<((i>>1) & 7))) continue;
		pr++;
		
	for(int j=i*3;j<=n;j+=i+i){
	a[j >> 4] |= 1 << ((j>>1) & 7);
}

}
out << pr+1;
}