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