Ejemplo n.º 1
0
 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");
 }
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
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;
}