from math import floor, sqrt n = 21894583143407671 def f(n, k, d): return (floor(sqrt(4 * k * n)) + d) ** 2 - 4 * k * n def is_square(n): k = int(sqrt(n)) return n == k * k for k in range(1, floor(n ** (1/3))+ 1): d_max = int(floor(n ** (1/6) / (4 * sqrt(k)))) for d in range(0, d_max + 2): q = f(n, k, d) if q >= 0 and is_square(q): print(q) print("d ", k, d) exit(1)