자바스크립트 코딩테스트
프로그래머스 Level 1 - 약수의 개수와 덧셈 (Javascript)
준벨롭
2023. 11. 16. 19:58
문제
답안
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