programmers
[Programmers Level 1] 약수의 개수와 덧셈 Javascript
냠냠맨
2022. 11. 25. 15:14
문제정보
정수 두개가 주어지고 두 정수 사이의 수들의 합을 구하는 문제입니다.
그런데 약수의 개수가 홀수면 -를 해줘야하네요
예시
left right result
13 17 43
24 27 52
나의풀이
function solution(left, right) {
let answer = 0
for(i=left ; i <= right; i++) {
let counter = 0
for(j=1;j <= i; j++) {
if(i % j == 0 ){
counter++
}
}
if(counter % 2 == 0) {
answer += i
}
else {
answer -= i
}
}
return answer
}
for문을 중첩시켜 풀었습니다.
합성수 찾기와 유사한 문제인 것 같네요
다른사람의 풀이
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;
}
n의 제곱근이 정수라면 n의 약수의 개수는 홀수입니다.
띠용하네요..
반응형