function solution(left, right) {
let arr = ();
let count = 0;
let result = 0;
for (let i = left; i <= right; i++) {
arr.push(i); // ( 13, 14, 15, 16, 17 )
for (let j = 0; j <= arr.length; j++) {
for (let l = 0; l <= arr(j); l++) {
if (arr(j) % l === 0) {
count++;
}
}
if (count % 2 === 0) {
result += arr(j)
} else {
result -= arr(j)
}
}
}
return result
}
처음에 사용된 방법은 왼쪽과 오른쪽 사이의 숫자를 배열에 넣고 배열을 통해 루프를 실행하여 요소를 제거하는 것이었습니다.
그러다 루프가 계속 반복되면서 result의 값이 반복적으로 더해져서 예상했던 값과 너무 다른 값이 나왔다.
2시간 가까이 시청 후 채팅으로 질문GPT,,,
카운트 변수는 한번 글로벌에 선언되면 i의 값이 바뀌어도 초기화되지 않아 값이 겹친다.
function solution(left, right) {
let result = 0;
for (let i = left; i <= right; i++) {
let count = 0;
for(let j=1;j<=i;j++){
if(i % j === 0){
count++
}
}
count % 2 === 0? result += i : result -= i;
}
return result
}