Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

두 숫자의 GCD 찾기


수학에서 최대 공약수(GCD)는 두 정수를 모두 나누는 가능한 가장 큰 정수입니다. 조건은 숫자가 0이 아니어야 한다는 것입니다.

유클리드 알고리즘을 따라 두 숫자의 GCD를 찾습니다.

입력 및 출력

Input:
Two numbers 51 and 34
Output:
The GCD is: 17

알고리즘

findGCD(a, b)

입력: 두 개의 숫자와 b.

출력: 및 b의 GCD.

Begin
   if a = 0 OR b = 0, then
      return 0
   if a = b, then
      return b
   if a > b, then
      return findGCD(a-b, b)
   else
      return findGCD(a, b-a)
End

#include<iostream>
using namespace std;

int findGCD(int a, int b) {    //assume a is greater than b
   if(a == 0 || b == 0)
      return 0;    //as a and b are 0, the greatest divisior is also 0
   if(a==b)
      return b;    //when both numbers are same
   if(a>b)
      return findGCD(a-b, b);
   else
      return findGCD(a, b-a);
}

int main() {
   int a, b;
   cout << "Enter Two numbers to find GCD: "; cin >> a >> b;
   cout << "The GCD is: " << findGCD(a,b);
}

출력

Enter Two numbers to find GCD: 51 34
The GCD is: 17