C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

再帰的ユークリッドアルゴリズムを使用して2つの数値のGCDを見つけるC++プログラム


2つの数値の最大公約数(GCD)は、両方を除算する最大の数値です。

例:63と21の2つの数字があるとします。

63 = 7 * 3 * 3
21 = 7 * 3

したがって、63と21のGCDは21です。

再帰的ユークリッドのアルゴリズムは、正の整数aとbのペアを使用し、bがゼロになるまでbとa%bを返すことによってGCDを計算します。

再帰的ユークリッドのアルゴリズムを使用して2つの数値のGCDを見つけるプログラムは次のとおりです-

#include <iostream>
using namespace std;
int gcd(int a, int b) {
   if (b == 0)
   return a;
   return gcd(b, a % b);
}
int main() {
   int a , b;
   cout<<"Enter the values of a and b: "<<endl;
   cin>>a>>b;
   cout<<"GCD of "<< a <<" and "<< b <<" is "<< gcd(a, b);
   return 0;
}

出力

上記のプログラムの出力は次のとおりです-

Enter the values of a and b: 105 30
GCD of 105 and 30 is 15

上記のプログラムでは、gcd()は再帰関数です。 aとbの2つのパラメータがあります。 bが0に等しい場合、aはmain()関数に返されます。それ以外の場合、gcd()関数は値bとa%bを使用して自分自身を再帰的に呼び出します。これは、次のコードスニペットによって示されます-

int gcd(int a, int b) {
   if (b == 0)
   return a;
   return gcd(b, a % b);
}
を返します

main()関数では、aとbの値がユーザーから要求されます。次に、gcd()関数が呼び出され、aとbのGCDの値が表示されます。これは下に見られます-

int main() {
   int a , b;
   cout<<"Enter the values of a and b: "<<endl;
   cin>>a>>b;
   cout<<"GCD of "<< a <<" and "<< b <<" is "<< gcd(a, b);
   return 0;
}

  1. 非再帰関数を使用して数値のGCDを見つけるCプログラム

    問題 非再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけます。 解決策 非再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つける方法を以下に説明します。 アルゴリズム 非再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるには、以下のアルゴリズムを参照してください。 ステップ1 −開始 ステップ2 −整数aとbを読み取ります ステップ3 −関数G =GCD(a、b)ステップ6を呼び出します ステップ4 −G値を出力 ステップ5 −停止 ステップ6 −呼び出された関数:GCD(a、b) a. Initialize th

  2. 再帰関数を使用して数値のGCDを見つけるCプログラム

    問題 Cプログラミング言語の再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけます。 解決策 再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるための解決策は、次のとおりです- アルゴリズム 再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるには、以下のアルゴリズムを参照してください。 ステップ1 −再帰関数を定義します。 ステップ2 −2つの整数aとbを読み取ります。 ステップ3 −再帰関数を呼び出します。 a. if i>j b. then return the function with parameter