Cod sursa(job #2162197)
Utilizator | Data | 12 martie 2018 08:59:04 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
int N,nr;
bool viz[2000001];
void ciur(){
int l=sqrt(N)+1;
for(int i=2;i<=l;++i)
if(!viz[i]){
++nr;
int j=2;
while(i*j<=N)viz[i*j]=1,++j;
}
for(int i=l+1;i<=N;++i)
if(!viz[i])
++nr;
}
int main()
{
f>>N;
ciur();
g<<nr;
return 0;
}