import core.bitop, std.bitmanip;
import core.checkedint;
import std.algorithm, std.functional;
import std.array, std.container;
import std.bigint;
import std.conv;
import std.math, std.numeric;
import std.range, std.range.interfaces;
import std.stdio, std.string;
import std.typecons;

void main() {
    long n;
    readf("%s", &n);
    readln;
   
    int best = 1;
    foreach (k; 1 .. sqrt(n.to!real).to!int + 1) {
        if (n % k == 0) {
            best = k;
        }
    }
    
    long ans = best - 1 + (n / best) - 1;
    
    ans.writeln;
}