Cod sursa(job #1382281)
| Utilizator | Data | 8 martie 2015 19:16:30 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <fstream>
#include <cmath>
#define MAX_SIZE 2000001
using namespace std;
short v[MAX_SIZE];
void ciur(long n)
{
v[1]=1;
long i, j, sqrt_n=sqrt(n);
for(i=2; i<=sqrt_n; ++i)
if(!v[i])
for(j=i*2; j<=n; j+=i) v[j]=1;
}
int main()
{
ifstream in("ciur.in");
ofstream out("ciur.out");
long n, ctr=0;
in>>n;
ciur(n);
for(long i=2; i<=n; ++i)
if(!v[i]) ++ctr;
out<<ctr<<endl;
in.close(); out.close();
return 0;
}
