[TIL] 카테고리/알고리즘 문제풀기
[자바스크립트] 프로그래머스 Lv.1 약수의 개수와 덧셈
티레이니
2022. 5. 21. 01:03
... 노가다로 풀었다. 약간 민망하다. for과 if의 노예 재등장
function solution(left, right) {
let divisors = 0;
let counter = 0;
for (i=left; i<=right; i++) { //왼쪽부터 오른쪽까지 수를 하나씩
for(j=1; j<=i; j++) { //소수를 찾기위해 반복문을 돌린다
if(i%j === 0) { counter++ } //숫자가 i로 나누어 떨어진다면 카운터 ++
}
if (counter%2 === 0) { // 소수가 짝수라면
divisors += i // i를 결과값에 더하고
counter = 0 // 카운터 초기화
} else {
divisors -= i // 이외에는 결과값에서 빼고
counter = 0 // 카운터 초기화
}
}
return divisors;
}
... 지저분하다. 뿌엥.
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;
}
다른 사람의 풀이.
제곱근이 정수면, 약수의 갯수가 홀수라고 한다..
수학 못하는거 초콤 서럽다..