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

C ++でGCDを使用せずに、3つ以上(または配列)の数値のLCMを検索する


配列Aがあり、GCD操作を使用せずにすべての要素のLCMを見つける必要があります。配列が{4、6、12、24、30}のような場合、LCMは120になります。

LCMは、2つの数値について簡単に計算できます。 LCMを取得するには、このアルゴリズムに従う必要があります。

getLCM(a、b)

begin
   if a > b, then m := a, otherwise m := b
      while true do
         if m is divisible by both a and b, then return m
            m := m + 1
   done
end

この関数を使用して、配列の最初の2つの数値のLCMを取得します。次に、LCMの結果を使用して、次の要素のLCMを検索します。これにより、結果を取得できます

#include <iostream>
using namespace std;
int getLCM(int a, int b){
   int m;
   m = (a > b) ? a : b;
   while(true){
      if(m % a == 0 && m % b == 0)
      return m;
      m++;
   }
}
int getLCMArray(int arr[], int n){
   int lcm = getLCM(arr[0], arr[1]);
   for(int i = 2; i < n; i++){
      lcm = getLCM(lcm, arr[i]);
   }
   return lcm;
}
int main() {
   int arr[] = {4, 6, 12, 24, 30};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << "LCM of array elements: " << getLCMArray(arr, n);
}

出力

LCM of array elements: 120

  1. Pythonプログラムの2つ以上(または配列)の数値のGCD

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 数の配列が与えられ、最大公約数を見つける必要があります。 3つ以上の数のgcdを見つける必要がある場合、gcdは、引数として提供されるすべての数に共通の素因数の積に等しくなります。また、引数の数のペアのGCDを繰り返し取得することによって計算することもできます。 ここでは、後者のアプローチを実装します では、実装を見てみましょう 例 def findgcd(x, y):    while(y):       x, y = y, x % y  

  2. 2つ以上(または配列)の数値のGCD用のPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 −数の配列が与えられ、最大公約数を見つける必要があります。 3つ以上の数のgcdを見つける必要がある場合、gcdは、引数として提供されるすべての数に共通の素因数の積に等しくなります。引数の数のペアのGCDを繰り返し取得することによって計算することもできます。 ここでは、後者のアプローチを実装します では、実装を見てみましょう 例 def findgcd(x, y):    while(y):       x, y = y, x % y   &n