Pagini recente » Cod sursa (job #2974266) | Cod sursa (job #2755215) | Cod sursa (job #2367692) | Cod sursa (job #2552088) | Cod sursa (job #2300276)
#include <cstdio>
using namespace std;
const int MAXN = 400;
int rad[MAXN*MAXN + 1];
int main()
{
freopen("dreptunghiuri.in", "r", stdin);
freopen("dreptunghiuri.out", "w", stdout);
int m, n;
scanf("%i %i", &m, &n);
for(int i = 1; i <= MAXN; i++)
rad[i * i] = i;
long long nrS = 0;
for(int H = 1; H < n; H++)
for(int W = 1; W < m; W++) {
int nr = 1;
for(int A = 1; A < H; A++) {
int delta = W * W - 4 * A * (H-A);
if(delta == 0 && W%2 == 0)
nr++;
else if((delta > 0 && rad[delta] != 0) && (W+rad[delta])%2 && W > rad[delta]) nr += 2;
}
nrS += (long long)nr * (n-H) * (m-W);
}
printf("%lld", nrS);
return 0;
}