Cod sursa(job #1314356)
| Utilizator | Data | 11 ianuarie 2015 19:46:04 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include<fstream>
#define maxn 2000001
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
long prim[maxn],n;
int i,k=0;
void eratostene(int n)
{
for(int p=2;p<n;p++)
{
if(prim[p]==0) prim[p]=1;
int c=2;
int mul=p*c;
while(mul<=n)
{
prim[mul]=-1;
c++;
mul=p*c;
}
}
}
int main()
{
f>>n;
eratostene(n);
for(int i=1;i<n;i++)
if(prim[i]==1) k++;
g<<k;
return 0;
}
