Cod sursa(job #201946)
Utilizator | Data | 5 august 2008 10:11:11 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.79 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[1000000];
int i,j;
for (i=1;i<=n;i++)
if (i % 2 == 0)
b[i] = '0';
else
b[i] = '1';
i=3;
while (i <= n/2)
{
j=3;
while (j <= n/i)
{
b[i*j] = '0';
j++;
}
i++;
}
b[1] = 0;
long cont=1;
for (i=1;i<=n;i++)
if (b[i] == '1')
cont+=1;
ofstream g ("ciur.out");
g<<cont<<"\n";
g.close();
return 0;
}