โจทย์ทั้งหมด
ง่าย 0 ข้อที่แก้แล้ว อัตราผ่าน 0%

ตัวหารร่วมมาก

หาค่ามากที่สุดที่หารทั้งสองค่าลงตัว

คืนค่าตัวหารร่วมมาก (gcd) ของ a และ b อัลกอริทึมของยูคลิดจะทำการแทนที่ (a, b) ด้วย (b, a mod b) ซ้ำไปเรื่อย ๆ จนกว่า b จะเป็น 0

ให้เขียนฟังก์ชัน gcd(a, b)

อินพุต

a: ตัวเลขตัวแรก b: ตัวเลขตัวที่สอง

เอาต์พุต

คืนค่า gcd(a, b) โดยที่ gcd(0, 0) ให้เป็น 0

เงื่อนไข

0 ≤ a, b ≤ 10¹⁸

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
a = 48
b = 18

ผลลัพธ์ที่คาดหวัง:
expected = 6
อินพุต:
long long a = 48;
long long b = 18;

ผลลัพธ์ที่คาดหวัง:
long long expected = 6;
อินพุต:
long a = 48;
long b = 18;

ผลลัพธ์ที่คาดหวัง:
long expected = 6;

คำอธิบาย

48 mod 18 = 12, 18 mod 12 = 6, 12 mod 6 = 0 ดังนั้นคำตอบคือ 6

ตัวอย่างที่ 2
อินพุต:
a = 17
b = 5

ผลลัพธ์ที่คาดหวัง:
expected = 1
อินพุต:
long long a = 17;
long long b = 5;

ผลลัพธ์ที่คาดหวัง:
long long expected = 1;
อินพุต:
long a = 17;
long b = 5;

ผลลัพธ์ที่คาดหวัง:
long expected = 1;

คำอธิบาย

17 กับ 5 ไม่มีตัวประกอบร่วมกันนอกจาก 1

แหล่งอ้างอิง

โจทย์นี้ปรับให้เหมาะกับ CodeUtility กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน

เรียนรู้จากคนอื่น

แนวทางจากชุมชน

ยังไม่มีวิธีทำที่เผยแพร่ ลองแก้โจทย์นี้เพื่อแชร์วิธีแรก