ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลข num เป็นอาร์กิวเมนต์เดียว
ฟังก์ชันควรทำสองสิ่ง
- แรก ตรวจสอบว่าตัวเลขเป็นจำนวนเฉพาะร่วมกับ 10 หรือไม่ หากไม่ใช่ ให้คืนค่า -1 (ตัวเลขเป็นจำนวนเฉพาะร่วมกับอีกตัวหนึ่งถ้าตัวหารร่วมเดียวคือ 1)
- หากตัวเลขเป็นจำนวนเฉพาะร่วมกับ 10 ให้คืนค่าความยาวของส่วนทศนิยมที่ซ้ำกัน เมื่อ 1 หารด้วยตัวเลขนั้น
ตัวอย่างเช่น หากอินพุตคือ
อินพุต
const num = 123;
เอาต์พุต
const output = 5;
คำอธิบายเอาต์พุต
เพราะตัวเลข 123 เป็นจำนวนเฉพาะร่วมกับ 10 แน่นอน
และเมื่อเราหาร 1 ด้วย 123 เราจะได้
1 / 123 = 0.008130081300813…
นี่แสดงชัดว่าส่วนทศนิยม 00813 ซ้ำไปเรื่อยๆ และความยาวคือ 5 ดังนั้นเอาต์พุตคือ 5
ตัวอย่างโค้ด
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));
ผลลัพธ์
5