Cod sursa(job #1045793)
| Utilizator | Data | 2 decembrie 2013 00:45:49 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin; ofstream fout;
char p[1000000/2+1];
int n,c=1;
int main()
{
fin.open("ciur.in"); fout.open("ciur.out");
fin>>n;fin.close();
int i,j;
for(i=1;((i*i)<<1)+(i<<1)<=n;i++)
if(!(p[i])){
for(j=((i*i)<<1)+(i<<1);(j<<1)+1<=n;j+=(i<<1)+1)
p[j]=1;
}
for(i=2;i<=(n-1)/2;i++)
if(!(p[i]))c++;
fout<<c<<"\n";fout.close();
return 0;
}
