void main() { int cnt = 0; set<pair<int, int>> S; for (long b = 5; b <= 640; b += 5) { for (long t = 1; t <= 11328; t += 1) { // if ((59 * b / 5 + t) % 5 != 0) continue; for (long h = 41; h <= 3776; h += 41) { long A = 6 * ((59 * b + t * 5) * 41 + 450 * h); long B = (b + t + h) * 41 * 25; long g = GCD(A, B); B /= g, A /= g; if ((59. / 41) * (59. / 41) * B / A > 1.) continue; if (is_sqr(A) && is_sqr(B)) { A = SqrRoot(A), B = SqrRoot(B); if (b * 59 * B % (A * 5) != 0) continue; if (t % A != 0) continue; if (h * 90 * B % (A * 41) != 0) continue; pair<int, int> s = {B, A}; if (!S.count(s)) { S.insert(s); ++cnt; print("#{}: b = {}, t = {}, h = {}, m = {}/{}, ans = {}\n", cnt, b, t, h, B * 59, A * 41, B * 59. / (A * 41.)); } } } } } if (S.count({25, 36})) print("good!\n"); }
int bruce(bignum_t r) { int ret = 0; for(bignum_t x = -r; x <= r; x ++) if(is_sqr(r * r - x * x)) { ret += 2; //printf(BIGNUM_T_FMT " " BIGNUM_T_FMT "\n", x, (bignum_t)sqrt(r * r - x * x)); } return ret - 2; }
int calc(bignum_t x) { if((x & 1) == 0) return 0; int ret = 0; for(bignum_t s = 3; ; s += 2) { bignum_t sqr_t = x * 2 - s * s; if(sqr_t < 1) break; if((sqr_t & 1) && s * s > sqr_t && is_sqr(sqr_t)) { bignum_t t = (int)sqrt(sqr_t); if(gcd(s, t) == 1) ret ++; } } return ret; }