n = int(eval(input()))

tmp = 1

 

for i in range(1,10**6+1):

  if n%i == 0:

    if i <= n//i:

      tmp  = i

    else:

      break

  elif tmp == 1 and i >= n/i:

    break

      

print((tmp + (n//tmp) -2))
n = int(eval(input()))

tmp = 1

 

for i in range(1,10**6+1): #10**12とかにしてしまうとTLE　

  #たとえばn=2*大きい素数である時を考えると，この時は全回ししてまう

  if n%i == 0:

    if i <= n//i:

      tmp  = i

    else:

      break

  elif tmp == 1 and i >= n/i:

    break

      

print((tmp + (n//tmp) -2))
n = int(eval(input()))
tmp = 1
for i in range(1, 10**6 + 1):
    if n % i == 0:
        if i <= n // i:
            tmp = i
        else:
            break
    elif tmp == 1 and i >= n / i:
        break
print((tmp + (n // tmp) - 2))

n = int(eval(input()))
tmp = 1
for i in range(1, 10**6 + 1):  # 10**12とかにしてしまうとTLE
    # たとえばn=2*大きい素数である時を考えると，この時は全回ししてまう
    if n % i == 0:
        if i <= n // i:
            tmp = i
        else:
            break
    elif tmp == 1 and i >= n / i:
        break
print((tmp + (n // tmp) - 2))

-for i in range(1, 10**6 + 1): +for i in range(1, 10**6 + 1):  # 10**12とかにしてしまうとTLE +    # たとえばn=2*大きい素数である時を考えると，この時は全回ししてまう