ที่นี่เราจะเห็นอัลกอริทึมแบบยุคลิดเพื่อค้นหา 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