31 lines
652 B
Python
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) |