Pagini recente » Cod sursa (job #95525) | Cod sursa (job #2331916) | Cod sursa (job #931276) | Cod sursa (job #788755) | Cod sursa (job #266487)
Cod sursa(job #266487)
#include <iostream>
#include <cmath>
using namespace std;
void read (int&, char * const);
void mark (const int&, char * const);
void write (const int&, char * const);
int main ()
{
char ciur[1000001];
int n;
read (n, ciur);
mark (n, ciur);
write (n, ciur);
return 0;
}
void mark (const int &n, char * const ciur)
{
int i, j;
for (i = 1; i * 2 + 1 <= sqrt(n); ++i)
{
if (ciur[i])
{
for (j = i * 3 + 1; j * 2 + 1 <= n; j += (i * 2 + 1))
{
ciur[j] = 0;
}
}
}
}
void read (int &n, char * const ciur)
{
int i;
freopen ("ciur.in", "r", stdin);
cin >> n;
for (i = 1; i <= n / 2; i++)
{
ciur[i] = 1;
}
}
void write (const int &n, char * const ciur)
{
int i, sum = 1;
for (i = 1; i * 2 + 1 <= n; ++i)
{
sum += ciur[i];
}
freopen ("ciur.out", "w", stdout);
cout << sum << endl;
}