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

Tìm độ dài của phần thập phân lặp lại trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một số, num, làm đối số đầu tiên và duy nhất

Chức năng của chúng ta phải thực hiện hai điều

  • Trước hết, cần kiểm tra xem số đó có phải là số nguyên tố với 10 hay không, nếu không, sẽ trả về -1 (một số là số nguyên tố với bất kỳ số nào khác nếu tỷ lệ nhân tử chung duy nhất là 1).
  • Nếu số là số nguyên tố với 10, thì chúng ta sẽ trả về độ dài của phần thập phân mà chính nó lặp lại, khi số đó chia hết cho 1.

Ví dụ:nếu đầu vào của hàm là -

Đầu vào

const num = 123;

Đầu ra

const output = 5;

Giải thích đầu ra

Bởi vì số 123 là số nguyên tố chắc chắn với 10

Và khi chúng ta chia 1 cho 123, chúng ta nhận được -

1 / 123 = 0.008130081300813…

Điều này cho thấy rõ ràng rằng phần thập phân 00813 đang được lặp lại vô hạn và độ dài của nó là 5, do đó đầu ra của chúng ta là 5.

Ví dụ

Sau đây là mã -

const num = 123;
const findRepeatingPart = (num = 1) => {
   if(num % 2 === 0 || num % 5 === 0){
      return -1;
   } else {
      let res = 10 % num, count = 1;
      while(res != 1){

         res = res * 10 % num;
         count++;
      };
      return count;
   }
};
console.log(findRepeatingPart(num));

Đầu ra

5