Cod sursa(job #201948)
Utilizator | Radu Antohi 7Radu | Data | 5 august 2008 10:19:59 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.75 kb |
#include <iostream>
#include <fstream>
// Ciurul lui Erastotenes
using namespace std;
int main()
{
int n;
ifstream f ("ciur.in");
f>>n;
f.close();
char b[1000050];
int i,j;
for (i=1;i<=n;i++)
b[i] = '1';
i=1;
while (i <= n/2)
{
j=1;
while (j <= n/i)
{
b[(2*i+1)*(2*j+1)] = '0';
j++;
}
i++;
}
b[1] = 0;
long cont=1;
for (i=1;i<=n/2;i++)
if ((b[2*i+1] == '1') && (2*i+1<=n))
cont+=1;
ofstream g ("ciur.out");
g<<cont<<"\n";
g.close();
return 0;
}