Leetcode 1362. 最接近的因数

js版

/**
 * @param {number} num
 * @return {number[]}
 */
var closestDivisors = function (num) {
    const r1 = num + 1;
    const m1 = ~~Math.sqrt(r1);

    const r2 = num + 2;
    const m2 = ~~Math.sqrt(r2);

    if (m1 * m1 === r1) {
      return [m1, m1];
    }
    if (m2 * m2 === r2) {
      return [m2, m2];
    }
    let res = [];
    for (let a = 1; a <= m1; a++) {
      if (r1 % a === 0) {
        if (res.length) {
          if (Math.abs(a - r1 / a) < Math.abs(res[0] - res[1])) {
            res = [a, r1 / a]
          }
        } else {
          res = [a, r1 / a];
        }
      }
    }

    for (let b = 1; b <= m2; b++) {
      if (r2 % b === 0) {
        if (res.length) {
          if (Math.abs(b - r2 / b) < Math.abs(res[0] - res[1])) {
            res = [b, r2/ b]
          }
        } else {
          res = [b, r2 / b];
        }
      }
    }
    return res;
  };
发布了40 篇原创文章 · 获赞 12 · 访问量 860

猜你喜欢

转载自blog.csdn.net/qq_29334605/article/details/105275003