Pagini recente » Cod sursa (job #1127269) | Cod sursa (job #1613789) | Cod sursa (job #1021711) | Cod sursa (job #3121408) | Cod sursa (job #730689)
Cod sursa(job #730689)
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
ifstream in("dreptunghiuri.in");
ofstream out("dreptunghiuri.out");
int n,m,rad[160100],nr,sol,de,a,b,c;
long long rez;
int main() {
int i,j,k;
in >> n >> m;
for(i = 0; i<=n*n; ++i) {
rad[i] = (double) sqrt((double)i);
if(rad[i]*rad[i] != i)
rad[i] = -1;
}
for(i = 1; i != n; ++i)
for(j = 1; j != m; ++j) {
nr = 1;
for(k = 1; k!=j; ++k) {
a = 1; b = -i; c = k*(j-k);
de = b*b - 4*a*c;
if(de>=0 && rad[de]!=-1) {
sol = - b - rad[de];
if(!(sol % (2*a)) && sol/2*a >= 1 && sol/2*a < i)
++rez;
if(de!=0) {
sol = -b + rad[de];
if(!(sol % (2*a)) && sol/2*a >= 1 && sol/2*a < i)
++rez;
}
}
}
rez += nr*(n - i)*(m - j);
}
out << rez << "\n";
return 0;
}