본문 바로가기
개인공부/프로그래머스

[코딩테스트] 약수의 개수와 덧셈

by 뭉지야 2023. 11. 10.
728x90

와 진짜 세상에 천재가 너무 많다............

 

약수의 개수 문제를 제곱근을 이용해서 풀어버리다니....

 

다른 풀이를 보고 무슨 말인가 했는데 ... 진짜 놀랍다...........

 

프로그래머스 레벨1문제 약수의 개수와 덧셈 문제이다.

 

약수의 개수가 홀수이면 -를 하고 짝수이면 +를 하는데.

 

약수의 개수가 홀수이면 제곱근이다..............  진짜 이건 생각도 못했다.

 

그래서 Math.sqrt를 이용해서 풀더라....   진짜 대박.....

 


내풀이

function solution(left, right) {
  let answer = 0;

  for(let i=left; i<=right; i++) {

    let p = 1;
    for(j=2; j<=i; j++) { // 약수 구하기
      if(i%j == 0) p++;
    }

    if(p % 2 == 0) answer += i; // 짝수는 더하고
    else answer -= i; // 홀수는 빼고
  }

  return answer;
}

 

다른사람 풀이

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;
}
728x90

'개인공부 > 프로그래머스' 카테고리의 다른 글

[0단계] 7의개수  (0) 2023.02.05
[0단계] 숫자찾기  (0) 2023.02.04
[0단계]문자열정렬하기1  (0) 2023.02.03
[0단계] 가위바위보  (0) 2023.01.31
[0단계]제곱수판별하기  (0) 2023.01.28