Pagini recente » Cod sursa (job #834617) | Cod sursa (job #3285396) | Cod sursa (job #1138927) | Cod sursa (job #164935) | Cod sursa (job #266464)
Cod sursa(job #266464)
#include <iostream>
using namespace std;
void read (int&, char * const);
void mark (const int&, char * const);
void write (const int&, char * const);
int main ()
{
char ciur[2000001];
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 = 2; i <= n; ++i)
{
if (ciur[i]) for (j = i * 2; j <= n; j += i)
{
ciur[j] = 0;
}
}
}
void read (int &n, char * const ciur)
{
int i;
freopen ("ciur.in", "r", stdin);
cin >> n;
for (i = 1; i <= n; i++)
{
ciur[i] = 1;
}
}
void write (const int &n, char * const ciur)
{
int i, sum = 0;
for (i = 2; i <= n; ++i)
{
sum += ciur[i];
}
freopen ("ciur.out", "w", stdout);
cout << sum << endl;
}