Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Đếm ước số của một số sử dụng JavaScript

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào một số và trả về số lượng ước số của nó.

Đầu vào

const num = 30;

Đầu ra

const output = 8;

Vì các ước số là:

1, 2, 3, 5, 6, 10, 15, 30

Ví dụ

Dưới đây là mã nguồn:

const num = 30; 
const countDivisors = (num = 1) => { 
  if (num === 1) return num 
  let divArr = [[2, 0]] 
  let div = divArr[0][0] 
  while (num > 1) { 
    if (num % div === 0) { 
      for (let i = 0; divArr.length; i++) { 
        if (divArr[i][0] === div) { 
          divArr[i][1] += 1 
          break 
        } else { 
          if (i === divArr.length - 1) { 
            divArr.push([div, 1]) 
            break 
          } 
        } 
      } 
      num /= div 
    } else { 
      div += 1 
    } 
  } 
  for (let i = 0; i < divArr.length; i++) { 
    num *= divArr[i][1] + 1 
  } 
  return num 
} 
console.log(countDivisors(num));

Kết quả

8