Cod sursa(job #1202160)
| Utilizator | Data | 27 iunie 2014 09:37:14 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
bool p[2000005];
int n;
void solve();
int countPrimes();
int main()
{
fin>>n;
solve();
fout<<countPrimes();
return 0;
}
void solve()
{
memset(p,true,sizeof(p));
for(int i=2;i<=n;i++)
{
if(p[i])
{
for(int j=i+i;j<=n;j+=i)
{
p[j] = false;
}
}
}
}
int countPrimes()
{
int primes = 0;
for(int i=2;i<=n;i++)
{
if(p[i])
{
primes++;
}
}
return primes;
}