ที่นี่เราจะเห็นอัลกอริทึมแบบยุคลิดเพื่อค้นหา GCD ของตัวเลขสองตัว GCD (ตัวหารร่วมที่ยิ่งใหญ่ที่สุด) สามารถพบได้ง่ายโดยใช้อัลกอริทึมแบบยุคลิด มีสองแนวทางที่แตกต่างกัน แบบหนึ่งเป็นแบบวนซ้ำ อีกแบบเป็นแบบเรียกซ้ำ เราจะใช้อัลกอริธึมแบบยุคลิดแบบเรียกซ้ำ
อัลกอริทึม
EuclideanAlgorithm(a, b)
begin if a is 0, then return b end if return gcd(b mod a, a) end
ตัวอย่าง
#include<iostream> using namespace std; int euclideanAlgorithm(int a, int b) { if (a == 0) return b; return euclideanAlgorithm(b%a, a); } main() { int a, b; cout << "Enter two numbers: "; cin >> a >> b; cout << "GCD " << euclideanAlgorithm(a, b); }
ผลลัพธ์
Enter two numbers: 12 16 GCD 4