[Lv.0] 순서쌍의 개수 ***

01수정·2022년 11월 14일
0
post-thumbnail

<입문 100문제> Day 8 - 배열, 구현, 수학

문제


풀이

function solution(n) {
    let count = 0
    for (let i=n; i>=1; i--) {
    // for (let i=1; i<=n; i++) {
        if (n % i === 0) {
            count ++
        }
    }
    return count
}

해답

function solution(n) {
  let count = 0;
  for (let i = 1; i < Math.sqrt(n); i++) {
    if (n % i === 0) count += 2;
  }
  if (n % Math.sqrt(n) === 0) count += 1;
  return count;
}
function solution(n) {
    let ans = 0;
    for (let i = 1; i < Math.sqrt(n); i++)
        if (n%i === 0) ans+=2;

    return Number.isInteger(Math.sqrt(n)) ? ans+1 : ans;
}

해답풀이

  • 루트(square root) : Math.sqrt(n) 루트값 반환. 매개변수가 음수이면 NaN
  • 제곱(power) : Math.pow(base, exponent)

나의 풀이는 비효율적. 입력값이 커지면 그만큼 반복 횟수가 기하급수적으로 늘어나기 때문.
for문에서 제곱근 처리를 했기 때문에 하나의 약수가 발견될 때마다 +2를 한다.. 는데 이해X
제곱근이 정수로 딱 떨어지면 +1을, 아니라면 그대로 ans를 리턴


참고자료

profile
새싹 FE 개발자

0개의 댓글