Cod sursa(job #1803564)
| Utilizator | Data | 11 noiembrie 2016 16:35:22 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <fstream>
#include <bitset>
#define N 2000002
#define infile "ciur.in"
#define outfile "ciur.out"
using namespace std;
ifstream fin(infile);
ofstream fout(outfile);
bitset<N> v;
// 0 = prim, 1 != prim
int n,i,ct;
void Ciur(int n)
{
ct=1;
v[0]=v[1]=1;
for(i=4; i<=n; i+=2)
v[i]=1;
for(i=3; i<=n; i+=2)
if(!v[i])
{ ++ct ;for(int k=2*i; k<=n; k+=i)
v[k]=1;
}
}
int main()
{
fin>>n;
Ciur(n);
fout<<ct;
fin.close(); fout.close();
return 0;
}
