>>> def foo(k):
print(k)
m,n = 1,0
x,y = k,k+1
i = 1
while 1:
if i < x: m += 1; i *= m
elif i > y: x *= x; y *= y; n += 1
else: return m,n
>>> foo(56)
56
(27, 4)
>>> foo(27)
27
(113, 7)
>>> foo(113)
113
(264, 8)
>>> foo(264)
264
(539, 9)
>>> foo(539)
539
(189, 7)
>>> foo(189)
189
(512, 9)
>>> foo(512)
512
(3560, 12)
>>> foo(3560)
3560
(15492, 14)
>>> foo(15492)
15492
(118388, 17)
>>> foo(118388)
118388