content: package question1362_closest_divisors;
  
  /**
   * 如果是num + 1或num + 2是一个完全平方数，那结果中的两个数均是num + 1或num + 2的平方根。
   *
   * 如果num + 1或num + 2不是一个完全平方数，要使结果中的两个数相差最小，那就是从num + 1或num + 2的平方跟开始遍历得到的第一对数。
   *
   * 时间复杂度是O(num ^ 0.5)。空间复杂度是O(1)。
   *
   * 执行用时：9ms，击败100.00%。消耗内存：37.2MB，击败100.00%。
   */
  public class Solution {
      public int[] closestDivisors(int num) {
          int num1 = -1, num2 = -1;
          for (int i = (int) Math.sqrt(num + 2); i >= 0; i--) {
              if ((num + 2) % i == 0) {
                  num1 = i;
                  num2 = (num + 2) / i;
                  break;
              }
          }
          for (int i = (int) Math.sqrt(num + 1); i >= 0; i--) {
              if ((num + 1) % i == 0) {
                  if (num1 == -1 || Math.abs(i - (num + 1) / i) < Math.abs(num1 - num2)) {
                      num1 = i;
                      num2 = (num + 1) / i;
                  }
                  break;
              }
          }
          return new int[] {num1, num2};
      }
  }