Cod sursa(job #1000921)
| Utilizator | Data | 23 septembrie 2013 23:06:09 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
const int maxN = 2000000;
int ns[maxN];
int main()
{
int n;
fin >> n;
double sqrtn = sqrt(n);
for(int i=2; i<sqrtn; i++)
{
if(ns[i]==0)
for (int j = i*i; j<n; j+=i)
{
ns[j]++;
}
}
int nr=0;
for(int i=0;i<maxN;i++)
if(ns[i] != 0)
nr++;
fout << nr;
return 0;
}
