문제

  • 양의 정수 n의 가장 가까운 제곱수를 찾는다.
  • 제곱수 (square number): 어떤 수를 제곱하여 얻은 수.

풀이 01

function nearestSquare(n) {
  let a = Math.round(Math.sqrt(n));
  return a * a;
}

nearestSquare(1);     // 1
nearestSquare(2);     // 1
nearestSquare(10);    // 9
nearestSquare(111);   // 121
nearestSquare(9999);  // 10000
  • Math.round(): 가장 가까운 정수로 반올림한다.
  • Math.sqrt(): 숫자의 제곱근을 반환한다.

풀이 02

function nearestSquare(n) {
  return Math.pow(Math.round(Math.sqrt(n)), 2);
}

nearestSquare(1);     // 1
nearestSquare(2);     // 1
nearestSquare(10);    // 9
nearestSquare(111);   // 121
nearestSquare(9999);  // 10000
  • Math.pow(x, y): x의 값을 y의 거듭제곱(x^y)으로 반환한다.

풀이 03

function nearestSquare(n) {
  return Math.round(n ** 0.5) ** 2;
}

nearestSquare(1);     // 1
nearestSquare(2);     // 1
nearestSquare(10);    // 9
nearestSquare(111);   // 121
nearestSquare(9999);  // 10000