💻JavaScript/코딩테스트
약수의 개수와 덧셈(Addition and Number of Divisors)
영진학생
2024. 12. 26. 20:44
문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요
제한 조건
1 ≤ left ≤ right ≤ 1,000
📄 문제
function solution(left, right) {
var answer = 0;
return answer;
}
💻 공부 후 코드
function solution(left, right) {
let result = 0; //결과 초기값 할당
for (let i = left; i <= right; i++) { //left부터 right 까지 반복
if(Number.isInteger(Math.sqrt(i))) { //i의 제곱근이 정수인지 확인
result -= i; //수를 빼주거나
} else {
result += i; //더해준다
}
}
return result;
}
📚 배운 점
제곱수는 약수의 개수가 홀수라는 아이디어를 얻었고 제곱근이 정수일 때 수를 빼주고 조건에 해당이 되지 않는다면 수를 더해주는 로직을 구현했습니다 :)
1. 제곱수 = 약수의 갯수가 홀수, 제곱수의 제곱근은 정수