문제
답안
function solution(left, right) {
var answer = 0;
for(let i = left; i <= right; i++){
if(Number.isInteger(Math.sqrt(i))){
answer -= i;
} else {
answer += i;
}
}
return answer;
}
후기
left와 right 사이의 값을 구한다.
그리고 그 값의 제곱근이 정수라면, 약수의 갯수가 홀수다.
예를들어 값이 16이라고 생각해보자.
(1,16),(2,8),(4,4)로 약수의 갯수가 5개이다.
값이 15라고 생각해보면
(1,15),(3,5)로 약수의 갯수 4개이다.
이와같이 같은값을 두번 곱해서 나온값의 수의 약수의 갯수는 홀수임을 알 수 있다.
i의 제곱근이 정수라면, i를 answer에서 빼주고, 정수가 아니라면 더해준다.
728x90
'자바스크립트 코딩테스트' 카테고리의 다른 글
프로그래머스 Level 1 - 대충 만든 자판 (Javascript) (0) | 2023.11.18 |
---|---|
프로그래머스 Level 1 - 체육복 (Javascript) (2) | 2023.11.17 |
프로그래머스 Level 1 - 내적 (Javascript) (0) | 2023.11.15 |
프로그래머스 Level 1 - 수박수박수박수박수박수? (Javascript) (0) | 2023.11.14 |
프로그래머스 Level 1 - 가운데 글자 가져오기 (Javascript) (0) | 2023.11.13 |