2025-07-18 20:25:29 +09:00

31 lines
652 B
Python

# n = int(input())
# dp = [0] + [1 if i**0.5 % 1 == 0 else 0 for i in range(1,n+1)]
# for i in range(2,n+1):
# if dp[i] :
# continue
# k = 1
# while k*k <= i :
# if not dp[i] :
# dp[i] = dp[i-k*k] + 1
# else :
# dp[i] = min(dp[i], dp[i-k*k] + 1)
# k += 1
# print(dp[n])
n = int(input())
if n**0.5%1 == 0 :
print(1)
else :
k = 1
flag = False
while k*k <= n :
if (n - k*k)**0.5%1 == 0 :
print(2)
flag = True
break
k += 1
if not flag :
while not n%4 :
n //= 4
print(4 if n%8==7 else 3)