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

合計とGCDがC++で与えられている2つの数値を見つけます


2つの数aとbの合計とgcdがあります。数字aとbの両方を見つける必要があります。それが不可能な場合は、-1を返します。合計が6でgcdが2であるとすると、数値は4と2になります。

このアプローチは、GCDが与えられると、その数がその倍数になることが知られているようなものです。次の手順があります

  • 最初の数値をGCDとして選択すると、2番目の数値はsum − GCD

    になります。
  • 前の手順で選択した数値の合計が合計と同じである場合は、両方の数値を出力します。

  • それ以外の場合は、数値が存在しないため、-1を出力します。

#include <iostream>
#include <algorithm>
using namespace std;
void printTwoNumbers(int s, int g) {
   if (__gcd(g, s - g) == g && s != g)
      cout << "first number = " << min(g, s - g) << "\nsecond number = " << s - min(g, s - g) << endl;
   else
      cout << -1 << endl;
}
int main() {
   int sum = 6;
   int gcd = 2;
   printTwoNumbers(sum, gcd);
}

出力

first number = 2
second number = 4

  1. C++で指定されたGCDとLCMのペアを検索します

    このセクションでは、指定されたGCD値とLCM値を使用してペアの数を取得する方法を説明します。 GCDとLCMの値が2と12であると仮定します。これで、可能な数値のペアは(2、12)、(4、6)、(6、4)、および(12、2)になります。したがって、私たちのプログラムはペアの数を見つけます。それは4です。 この問題を解決するための手法を理解するためのアルゴリズムを見てみましょう。 アルゴリズム countPairs(gcd, lcm): Begin    if lcm is nit divisible by gcd, then       r

  2. n個の数のGCDとLCMを見つけるためのC++プログラム

    これは、n個の数のGCDとLCMを見つけるためのコードです。すべてがゼロではない2つ以上の整数のGCDまたは最大公約数は、各整数を除算する最大の正の整数です。 GCDは最大公約数としても知られています。 2つの数値の最小公倍数(LCM)は、両方の数値の倍数である最小公倍数(ゼロではない)です。 アルゴリズム Begin    Take two numbers as input    Call the function gcd() two find out gcd of n numbers    Call the function l