14
อัลกอริทึมแบบยุคลิด (สำหรับการค้นหาตัวหารร่วมมาก)
ความท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่รับอินพุตจำนวนเต็มสองตัวiและjและเอาท์พุทตัวหารร่วมที่ยิ่งใหญ่ที่สุด คำนวณโดยใช้อัลกอริทึมแบบยุคลิด (ดูด้านล่าง) อินพุต อินพุตอาจถูกใช้เป็นการแทนค่าสตริงที่คั่นด้วยช่องว่างiและjหรือเป็นจำนวนเต็มสองตัวแยกกัน คุณสามารถสันนิษฐานได้ว่าจำนวนเต็มจะน้อยกว่าหรือเท่ากับ 10,000 คุณสามารถสันนิษฐานได้ว่าจำนวนเต็มอินพุทจะไม่เป็นไพรม์ต่อกัน การสลายแบบยุคลิด จำนวนที่มากขึ้นระหว่างiและjหารด้วยจำนวนที่น้อยกว่าให้มากที่สุด จากนั้นส่วนที่เหลือจะถูกเพิ่ม 0ขั้นตอนนี้ซ้ำกับที่เหลือและจำนวนก่อนจนเหลือจะกลายเป็น ตัวอย่างเช่นถ้าอินพุตคือ1599 650: 1599 = (650 * 2) + 299 650 = (299 * 2) + 52 299 = (52 * 5) + 39 52 = (39 * 1) + 13 39 = (13 * 3) + 0 …