Problem:
Score : 300 points

Problem Statement

Takahashi is standing on a multiplication table with infinitely many rows and columns.

The square (i,j) contains the integer i \times j. Initially, Takahashi is standing at (1,1).

In one move, he can move from (i,j) to either (i+1,j) or (i,j+1).

Given an integer N, find the minimum number of moves needed to reach a square that contains N.

Constraints

2 \leq N \leq 10^{12}

N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

Print the minimum number of moves needed to reach a square that contains the integer N.

Sample Input 1

10

Sample Output 1

5

(2,5) can be reached in five moves. We cannot reach a square that contains 10 in less than five moves.

Sample Input 2

50

Sample Output 2

13

(5, 10) can be reached in 13 moves.

Sample Input 3

10000000019

Sample Output 3

10000000018

Both input and output may be enormous.

Solution in PHP7 (7.0.15) (judge verdict: Wrong Answer)

<?php
  $dir = (int)fgets(STDIN);

    $limit = ceil(sqrt($dir));
    $check = 0;
    $res = NULL; 
    for($i=2;$i<=$limit ;$i++) {
    if($dir%$i == 0) { 
    $res = $i;
    break;
    }
    }
    if ($res == NULL) { 
    $check = 1;
    }

if($check === 0){
  $point = 1000000000000;

  for($j=1; $j<=$dir/2; $j++){
    if($dir % $j === 0){
        $num = $dir / $j;
      for($k=1; $k<=$dir/2; $k++){
        if($num === $k){
          if($j-1 + $k-1 < $point){
            $point = $j-1 + $k-1;
          }
        }
      }
    }
  }  
}else{
    $point = $dir -1;
}

echo $point;