def lscan; gets.split.map(&:to_i); end
def bye(msg); puts msg.to_s; exit; end
n = gets.to_i

best = 2e18
1.upto(n) do |x|
  y = n/x
  break if x > y
  next if n/x*x != n
  best = [x+y, best].min
end

p best-2