문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ left ≤ right ≤ 1,000
ex)
left: 13, right: 17 👉 result: 43
left: 24, right: 27 👉 result: 52
function solution(left, right) {
var answer=0;
for(let i = left; i<right+1; i++) {
if (Number.isInteger(Math.sqrt(i))) {
answer -= i
} else {
answer +=i
}
}
return answer;
}
제곱근이 정수면 약수의 개수는 홀수인 것을 이용했다.
Number.isInteger(n)
숫자(n)가 정수면 true, 아니면 false를 return한다
Math.sqrt(i)
숫자(i)의 제곱근을 return한다
'Study > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 행렬의 덧셈 (0) | 2023.04.23 |
---|---|
[프로그래머스] 문자열 다루기 기본 (0) | 2023.04.21 |
[프로그래머스] 수박수박수박수박수박수? (0) | 2023.04.21 |
[프로그래머스] 모음 제거(JavaScript) (0) | 2023.04.18 |
[프로그래머스] 순서쌍의 개수(JavaScript) (0) | 2023.04.18 |