Cod sursa(job #1659293)
| Utilizator | Data | 22 martie 2016 09:52:26 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int t[2000001];
int main()
{
ifstream cin ("ciur.in");
ofstream cout ("ciur.out");
int n,p,i,j,nr=0;
cin >> n;
p=2;
for (i=p+2;i<=n;i=i+p)
{
t[i]=1;
}
int lim=sqrt(n);
for (p=3;p<=lim;p=p+2)
{
if (t[p]==0)
{
for (j=p+p;j<n;j=j+p)
t[j]=1;
}
}
for (i=2;i<=n;i++)
{
if (t[i]==0)
nr++;
}
cout << nr;
return 0;
}
