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

C ++で再帰またはユークリッドアルゴリズムを使用せずに、2つの数値のHCFを検索します


ご存知のように、HCFまたはGCDは、ユークリッドの互除法を使用して簡単に計算できます。ただし、ここでは、ユークリッドアルゴリズムや再帰アルゴリズムを使用せずにGCDまたはHCFを生成する方法を説明します。 2つの数値が16と24として存在するとします。これら2つのGCDは8です。

ここでのアプローチは単純です。これら2つの大きい数が小さい方で割り切れる場合、それは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

  1. 再帰を使用して自然数の合計を見つけるC++プログラム

    自然数は1から始まる正の整数です。 自然数のシーケンスは-です 1, 2, 3, 4, 5, 6, 7, 8, 9, 10…… 再帰を使用して最初のn個の自然数の合計を見つけるプログラムは次のとおりです。 例 #include <iostream> using namespace std; int sum(int n) {    if(n == 0)    return n;    else    return n + sum(n-1); } int main() { &

  2. 再帰を使用してG.C.Dを検索するC++プログラム

    2つの数値の最大公約数(GCD)は、両方を除算する最大の数値です。 例:45と27の2つの数字があるとします 63 = 7 * 3 * 3 42 = 7 * 3 * 2 So, the GCD of 63 and 42 is 21 再帰を使用して2つの数値のGCDを見つけるプログラムは次のとおりです。 例 #include<iostream> using namespace std; int gcd(int a, int b) {    if (a == 0 || b == 0)    return 0;    els