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

2つの数値のLCMを見つける


数学では、最小公倍数(LCM)は可能な限り最小の整数であり、両方の数値で割り切れます。

LCMは、因数分解などの多くの方法で計算できますが、このアルゴリズムでは、大きい方の数値に1、2、3…を掛けています。 n2番目の数で割り切れる数が見つかるまで。

入力と出力

Input:
Two numbers: 6 and 9
Output:
The LCM is: 18

アルゴリズム

LCMofTwo(a, b)

入力: 2つの数字aとb、a>bと見なされます。

出力: aとbのLCM。

Begin
   lcm := a
   i := 2
   while lcm mod b ≠ 0, do
      lcm := a * i
      i := i + 1
   done

   return lcm
End

#include<iostream>
using namespace std;

int findLCM(int a, int b) {    //assume a is greater than b
   int lcm = a, i = 2;

   while(lcm % b != 0) {    //try to find number which is multiple of b
      lcm = a*i;
      i++;
   }
   return lcm;    //the lcm of a and b
}

int lcmOfTwo(int a, int b) {
   int lcm;
   if(a>b)    //to send as first argument is greater than second
      lcm = findLCM(a,b);
   else
      lcm = findLCM(b,a);
   return lcm;
}

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

出力

Enter Two numbers to find LCM: 6 9
The LCM is: 18

  1. 2つの数のGCDを見つける

    数学では、最大公約数(GCD)は可能な最大の整数であり、両方の整数を除算します。条件は、数値がゼロ以外でなければならないということです。 ユークリッドの互除法に従って、2つの数値のGCDを見つけます。 入力と出力 Input: Two numbers 51 and 34 Output: The GCD is: 17 アルゴリズム findGCD(a, b) 入力: 2つの数字aとb。 出力: aとbのGCD。 Begin    if a = 0 OR b = 0, then       return 0    if a

  2. 2つの数を掛ける最速の方法

    2つの数値は2進文字列として指定されます。私たちのタスクは、これらの数値の乗算の結果をより高速かつ効率的に見つけることです。 分割統治法を使用すると、非常に効率的な方法で問題を解決できます。数字を2つに分割します。 XleftとXrightが最初の数Xの2つの部分であり、Yleft、Yrightが2番目の数Yの2つの部分であるとします。したがって、製品; 簡単にするために、この操作を実行できます 入力と出力 Input: Two binary numbers: 1101 and 0111 Output: The result is: 91 アルゴリズム addBi