Cod sursa(job #1010603)
Utilizator | Iulia Duta jul123 | Data | 15 octombrie 2013 12:39:28 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;
int main()
{
ifstream f("ciur.in");
ofstream g("ciur.out");
int n, i, j, p, ciur[2000001], r, nr=0;
f>>n;
for(i=2; i<=n; i++)
ciur[i]=true;
r=(int)sqrt(n);
for(p=2; p<=r; p++)
{
if(ciur[p]==1)
for(j=p*p; j<=n; j+=p)
ciur[j]=false;
}
for(i=1;i<=n;i++)
if(ciur[i]==true)
nr++;
g<<nr;
f.close();
g.close();
return 0;
}