Cod sursa(job #447903)
| Utilizator | Data | 1 mai 2010 21:07:57 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
int p[200000]={2,2,3},n,nr;
void count();
int prim(int x);
int main()
{
f>>n;
count();
g<<nr<<'\n';
f.close();
g.close();
return 0;
}
int prim(int x)
{
int i;
for (i=1;i<=p[0]&&p[i]*p[i]<=x;++i)
if (x%p[i]==0) return 0;
return 1;
}
void count()
{
int i;
if (n==2) nr=1;
else
{
nr=1;
for (i=3;i<=n;i+=2)
if (prim(i))
{
p[++p[0]]=i;
++nr;
}
}
}
