Computer >> Máy Tính >  >> Lập trình >> Javascript

Đếm ước của một số bằng JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một số và trả về tổng số ước của nó.

Đầu vào

const num = 30;

Đầu ra

const output = 8;

Bởi vì các ước số là -

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

Ví dụ

Sau đây là mã -

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));

Đầu ra

8