Pagini recente » Cod sursa (job #1790399) | Cod sursa (job #2121989) | Cod sursa (job #1131153) | Cod sursa (job #2737888) | Cod sursa (job #1808638)
#include <fstream>
#include <cmath>
#include <vector>
using namespace std;
vector <bool> a;
int n,c=1;
void ciur()
{
int q,k;
for (int x=1; x*x<=n; x++)
{
for (int y=1; y*y<=n; y++)
{
q=4*x*x+y*y;
if (q<=n && (q % 12 == 1 || q % 12 == 5)) a[q]=(!a[q]);
q-=x*x;
if (q<=n && q % 12 == 7) a[q]=(!a[q]);
q-=2*y*y;
if (q<=n && x>y && q % 12 == 11) a[q]=(!a[q]);
}
}
for (int i=5; i*i<=n; i++)
{
if (a[i])
{
k=i*i; q=k;
while (q<=n)
{
a[q]=false;
q+=k;
}
}
}
a[2]=true;
a[3]=true;
}
main()
{
ifstream cin("ciur.in");
cin >> n;
cin.close();
a.resize(n+1);
ciur();
for (int i=3; i<=n; i+=2)
{
if (a[i]) c++;
}
ofstream cout("ciur.out");
cout << c ;
cout.close();
}