Cod sursa(job #411280)
| Utilizator | Data | 4 martie 2010 20:10:53 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include<fstream>
using namespace std;
char ciur[2000001];
int prim(long long nr)
{
for(int i=2;i*i<=nr;++i) if(nr%i==0) return 0;
return 1;
}
int main()
{
long long n,s=0,i;
ifstream fi("ciur.in");
ofstream fo("ciur.out");
fi>>n;
for(i=2;i<=n;++i) ++ciur[i];
for(i=2;i<=n;++i)
if(ciur[i]) {
if(prim(i)) ++s;
for(long long j=i;j<=n;j+=i) ciur[j]=0;
}
fo<<s;
fi.close();
fo.close();
return 0;
}
