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

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

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào một số num làm đối số duy nhất. Hàm phải làm hai việc:

  • Kiểm tra xem số có nguyên tố cùng nhau với 10 hay không, nếu không, trả về -1 (số nguyên tố cùng nhau với số khác nếu ước chung duy nhất là 1).
  • Nếu số nguyên tố cùng nhau với 10, trả về độ dài phần thập phân lặp lại khi 1 chia cho số đó.

Ví dụ, nếu đầu vào là:

Đầu vào

const num = 123;

Đầu ra

const output = 5;

Giải thích

Số 123 nguyên tố cùng nhau với 10. Khi chia 1 cho 123 ta được: 1/123 = 0.008130081300813... Phần thập phân 00813 lặp vô hạn, độ dài là 5.

Ví dụ

Dưới đây là mã thực hiện:

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

Kết quả

5