from math import isqrt
def T(k): return k*(k+1)//2
def phase2_feasible(k, l, n):
S2 = T(l) - T(k)
if (S2 - n) % 2 != 0: return False
T2p = (S2 - n) // 2
if T2p < 0: return False
if T2p == 0: return True
a = k + 1
if T2p < a: return False
reachable = {0}
for i in range(a, l + 1):
reachable |= {x + i for x in reachable if x + i <= T2p}
return T2p in reachable
def travel(n):
n = abs(n)
k_min = isqrt(2*n)
l_min = 2 * isqrt(n)
while T(k_min) < n: k_min += 1
for l in range(l_min, l_min+10):
for k in range(k_min, k_min + 10):
if (T(k) - n) % 2 != 0: continue
if phase2_feasible(k, l, n):
print(n, k_min, k, l_min, l)
return l
return None
for n in range(1, 50):
travel(n)
To embed this project on your website, copy the following code and paste it into your website's HTML: