Cod sursa(job #2607203)
Utilizator | marin negai Gliu | Data | 29 aprilie 2020 15:07:42 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.38 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("ciur.in");
ofstream out("ciur.out");
int const nmax=2000005;
int n,pr=1;
unsigned char a[nmax];
int main(){
cin >>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);
}
}
cout << pr;
}