약수의 개수와 덧셈

Jtiiin:K·2023년 12월 13일
0
post-thumbnail

문제

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

제한사항

1 ≤ left ≤ right ≤ 1,000

정답풀이

function solution(left, right) {
  let num = 0;
  for(let i = left; i <=right; i++) {
    if(Number.isInteger(Math.sqrt(i))) { // true, false
      // 1. 16
      // 2. 25
      num = num - i 
    } else {
      // 1. 13, 14, 15, 17
      // 2. 24, 26, 27
      num = num + i 
    }
  }
  return num
}

solution(13,17) // 43
solution(24,27) // 52

보충

  • isInteger() : 전달된 값이 정수인지 여부를 확인
  • sqrt() : 숫자의 제곱근을 반환
    (주어진 숫자에 루트(√ )를 씌웁니다. 만약 숫자가 음수이면 NaN를 반환)
Math.sqrt(9); // 3
Math.sqrt(2); // 1.414213562373095

Math.sqrt(1); // 1
Math.sqrt(0); // 0
Math.sqrt(-1); // NaN
profile
호기심 많은 귀차니즘의 공부 일기

0개의 댓글