우리가 알고 있듯이 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