Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหา HCF ของตัวเลขสองตัวโดยไม่ต้องใช้การเรียกซ้ำหรืออัลกอริทึมแบบยุคลิดใน C++


ดังที่เราทราบ 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