Pagini recente » Cod sursa (job #2058808) | Cod sursa (job #2201108) | Cod sursa (job #479858) | Cod sursa (job #1772430) | Cod sursa (job #547717)
Cod sursa(job #547717)
#include <stdio.h>
#include <math.h>
int n, m;
long long sol;
int main ()
{
freopen ("dreptunghiuri.in", "r", stdin);
freopen ("dreptunghiuri.out", "w", stdout);
scanf ("%d %d", &n, &m);
if (n < m)
n ^= m ^= n ^= m;
int i, j, k, nr, d;
for (i = 2; i < n; i ++)
for (j = 2; j < m; j ++)
{
nr = 0;
for (k = 1; k < j; k ++)
{
d = i * i - 4 * k * (j - k);
if (d < 0)
continue;
if (d == 0)
{
if ((int)sqrt (d) * sqrt (d) != d)
continue;
nr += (i & 1) == 0;
continue;
}
if ((int)sqrt (d) * sqrt (d) != d)
continue;
d = sqrt (d);
if ((i ^ d) & 1)
continue;
if (d >= i)
continue;
nr += 2;
}
sol = sol + nr * (n - i) * (m - j);
}
sol = sol + (long long)n * (n - 1) / 2 * m * (m - 1) / 2;
printf ("%lld\n", sol);
return 0;
}