import java.util.*;
 
public class Main {
    public static void main(String args[]) {
       //値の取得
       Scanner sc = new Scanner(System.in);
       long N = sc.nextLong(); //long型で宣言
       double root = Math.sqrt(N);
       long a = 1; //最初の地点
       long b = 1; //最初の地点
       long count = 0; //移動回数
       
      while(a <= root) {
           if(N % a == 0) {
               b = N / a;  
               if(a + b - 2 < count || count == 0) {
                  count = a + b - 2; 
               }
           }
           ++a;
       }
       System.out.println(count);
    }
}
       
       
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz