ดังที่เราทราบ HCF หรือ GCD สามารถคำนวณได้อย่างง่ายดายโดยใช้อัลกอริทึมแบบยุคลิด แต่ที่นี่เราจะมาดูวิธีการสร้าง GCD หรือ HCF โดยไม่ต้องใช้อัลกอริทึมแบบยุคลิดหรืออัลกอริธึมแบบเรียกซ้ำใดๆ สมมติว่ามีตัวเลขสองตัวเป็น 16 และ 24 GCD ของสองตัวนี้คือ 8
วิธีการนี้ง่าย หากจำนวนที่มากกว่าของสองตัวนี้หารด้วยจำนวนที่น้อยกว่า นั่นคือ HCF มิฉะนั้นจะเริ่มต้นจาก (เล็กกว่า / 2) ถึง 1 หากองค์ประกอบปัจจุบันหารจำนวนทั้งสอง นั่นคือ HCF
ตัวอย่าง
#include <iostream> using namespace std; int gcd(int a, int b) { int min_num = min(a, b); if (a % min_num == 0 && b % min_num == 0) return min_num; for (int i = min_num / 2; i >= 2; i--) { if (a % i == 0 && b % i == 0) return i; } return 1; } int main() { int a = 16, b = 24; cout << "HCF: "<< gcd(a, b); }
ผลลัพธ์
HCF: 8