Pagini recente » Cod sursa (job #2520016) | Cod sursa (job #2762367) | Cod sursa (job #1041902) | Cod sursa (job #870325) | Cod sursa (job #2702165)
#include <bits/stdc++.h>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
int n;
bool sieve[2000009];
int main()
{
f >> n;
for (int x = 1; x * x <= n; x++)
for (int y = 1; y * y <= n; y++)
{
int r = 4 * x * x + y * y;
if (r < n && (r % 12 == 1 || r % 12 == 5))
sieve[r] ^= 1;
r -= x * x;
if (r < n && r % 12 == 7)
sieve[r] ^= 1;
r -= 2 * y * y;
if (x > y && r < n && r % 12 == 11)
sieve[r] ^= 1;
}
int rez = 0;
sieve[3] = 1;
for (int i = 3; i <= n; i++)
if (sieve[i])
{
rez++;
for (int j = i * i; j <= n; j += i * i)
sieve[j] = 0;
}
g << rez + (2 <= n);
return 0;
}