Pagini recente » Cod sursa (job #727942) | Cod sursa (job #205383) | Cod sursa (job #1631248) | Cod sursa (job #2292485) | Cod sursa (job #2064224)
#include<bits/stdc++.h>
#define maxN 405
using namespace std;
int n,m,a,b,c,delta;
int dp[maxN][maxN];
long long sol;
int ps[10000005];
int main()
{
freopen("dreptunghiuri.in","r",stdin);
freopen("dreptunghiuri.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=500;i++) ps[i*i]=i;
for(int L=1;L<n;L++)
for(int l=1;l<m;l++)
{
int ans=0;
for(int k=0;k<L;k++)
{
a=2;
b=-2*l;
c=-2*k*k+2*L*k;
delta=b*b-4*a*c;
if(delta<0) continue;
if(delta==0)
{
int x=-b/(2*a);
if(!(b%(2*a)) && x<l) ans++;
}
else
if(delta>0)
{
int rp=ps[delta];
if(!rp) continue;
float x1=(-b-rp)/(2.0*a);
float x2=(-b+rp)/(2.0*a);
if(x1==(int)x1 && x1<l) ans++;
if(x2==(int)x2 && x2<l) ans++;
}
}
sol=sol+1LL*(n-L)*(m-l)*ans;
}
printf("%lld\n",sol);
return 0;
}