코딩테스트 43일차
약수의 개수와 덧셈
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
function solution(left, right) {
let answer = 0;
for (let num = left; num <= right; num++) {
let divisors = 0; // 약수의 개수를 저장할 변수
for (let i = 1; i <= num; i++) {
if (num % i === 0) {
divisors++; // 약수를 찾으면 개수를 증가시킵니다.
}
}
if (divisors % 2 === 0) {
answer += num; // 약수의 개수가 짝수인 경우 더합니다.
} else {
answer -= num; // 약수의 개수가 홀수인 경우 뺍니다.
}
}
return answer;
}
✏️풀이
let answer = 0;: answer 변수에 최종 결과를 저장합니다.
for (let num = left; num <= right; num++) {: left부터 right까지의 수에 대해 반복합니다. 반복문 변수 num은 현재 검사하고 있는 수를 나타냅니다.
let divisors = 0;: divisors 변수에는 num의 약수 개수를 저장합니다.
for (let i = 1; i <= num; i++) {: 1부터 num까지의 수에 대해 반복합니다. 반복문 변수 i는 현재 약수 후보를 나타냅니다.
if (num % i === 0) { divisors++; }: num을 i로 나누었을 때 나머지가 0이면, i는 num의 약수입니다. 따라서 divisors 변수를 증가시킵니다.
if (divisors % 2 === 0) { answer += num; } else { answer -= num; }: divisors의 값이 짝수이면 num은 약수의 개수가 짝수입니다. 따라서 answer에 num을 더합니다. 그렇지 않은 경우에는 num은 약수의 개수가 홀수이므로, answer에서 num을 뺍니다.
반복문이 종료된 후, answer 값을 반환합니다.
코딩테스트 43일차
약수의 개수와 덧셈
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
function solution(left, right) {
let answer = 0;
for (let num = left; num <= right; num++) {
let divisors = 0; // 약수의 개수를 저장할 변수
for (let i = 1; i <= num; i++) {
if (num % i === 0) {
divisors++; // 약수를 찾으면 개수를 증가시킵니다.
}
}
if (divisors % 2 === 0) {
answer += num; // 약수의 개수가 짝수인 경우 더합니다.
} else {
answer -= num; // 약수의 개수가 홀수인 경우 뺍니다.
}
}
return answer;
}
✏️풀이
let answer = 0;: answer 변수에 최종 결과를 저장합니다.
for (let num = left; num <= right; num++) {: left부터 right까지의 수에 대해 반복합니다. 반복문 변수 num은 현재 검사하고 있는 수를 나타냅니다.
let divisors = 0;: divisors 변수에는 num의 약수 개수를 저장합니다.
for (let i = 1; i <= num; i++) {: 1부터 num까지의 수에 대해 반복합니다. 반복문 변수 i는 현재 약수 후보를 나타냅니다.
if (num % i === 0) { divisors++; }: num을 i로 나누었을 때 나머지가 0이면, i는 num의 약수입니다. 따라서 divisors 변수를 증가시킵니다.
if (divisors % 2 === 0) { answer += num; } else { answer -= num; }: divisors의 값이 짝수이면 num은 약수의 개수가 짝수입니다. 따라서 answer에 num을 더합니다. 그렇지 않은 경우에는 num은 약수의 개수가 홀수이므로, answer에서 num을 뺍니다.
반복문이 종료된 후, answer 값을 반환합니다.