def main(): counter = 0 for d in range(5, 12001): for n in find_range(d): if gcd(n, d) == 1: counter += 1 print(counter)
def __init_gcd(self, m): for a in range(1, m + 1): self.gcd[(a, a)] = a for b in range(a + 1, m + 1): g = gcd(a, b) self.gcd[(a, b)] = g self.gcd[(b, a)] = g
def main(): result = 0 limit = 1500000 cache = {i: 0 for i in range(0, limit + 1)} for m in range(2, trunc(sqrt(limit)) + 1): for n in range(1, m): if (n + m) % 2 == 1 and gcd(n, m) == 1: a = m * m + n * n b = m * m - n * n c = 2 * m * n pa = a + b + c while pa <= limit: cache[pa] += 1 if cache[pa] == 1: result += 1 if cache[pa] == 2: result -= 1 pa += a + b + c return result