문제정보
정수 두개가 주어지고 두 정수 사이의 수들의 합을 구하는 문제입니다.
그런데 약수의 개수가 홀수면 -를 해줘야하네요
예시
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의 약수의 개수는 홀수입니다.
띠용하네요..
반응형
'programmers' 카테고리의 다른 글
[Programmers Level 0] 한번만 등장한 문자 Javascript (0) | 2022.11.25 |
---|---|
[Programmers Level 2] JadenCase 문자열 만들기 Javascript (0) | 2022.11.25 |
[Programmers Level 1] 문자열 내림차순으로 정렬하기 Javascript (0) | 2022.11.25 |
[Programmers Level 0] 가까운수 Javascript (0) | 2022.11.25 |
[Programmers Level 1] 진료 순서 정하기 Javascript (0) | 2022.11.25 |