LCMが最大になるようにN以下の3つの整数を見つけます-C++
このチュートリアルでは、LCMの概念に基づいたプログラムを作成します。タイトルにあるように、LCMが最大である指定された数以下の3つの数を見つける必要があります。
例を見てみましょう。
問題に飛び込む前に、LCMとは何かを確認し、そのためのプログラムを作成しましょう。
LCM 最小公倍数です。最小公約数としても知られています。 2つの正の数aとbの場合、LCMは、aとbの両方で均等に割り切れる最小の整数です。
指定された整数に共通因子がない場合、 LCM は与えられた数の積です。
例
与えられた任意の2つの正の数のLCMを見つけるプログラムを書いてみましょう。
#include <iostream> using namespace std; int main() { int a = 4, b = 5; int maximum = max(a, b); while (true) { if (maximum % a == 0 && maximum % b == 0) { cout << "LCM: " << maximum << endl; break; } maximum++; } }
出力
上記のプログラムを実行すると、次の出力が得られます。
20
LCMとは何か、2つの正の数のLCMを見つけるためのプログラムを見てきました。
問題を解決するための手順を見てみましょう。
-
数が奇数の場合、最大LCMの3つの数は n、n-1、 およびn-3 。
-
数が偶数で、GCMが nの場合 およびn-3 1です その場合、最大LCMの3つの数値は n、n-1 、および n-3 。
-
それ以外の場合、最大LCMの3つの数値は n-1、n-2 、および n-3 。
例
コードを見てみましょう。
#include <bits/stdc++.h> using namespace std; void threeNumbersWithMaxLCM(int n) { if (n % 2 != 0) { cout << n << " " << (n - 1) << " " << (n - 2); } else if (__gcd(n, (n - 3)) == 1) { cout << n << " " << (n - 1) << " " << (n - 3); } else { cout << (n - 1) << " " << (n - 2) << " " << (n - 3); } cout << endl; } int main() { int n = 18; threeNumbersWithMaxLCM(n); return 0; }
出力
上記のプログラムを実行すると、次の結果が得られます。
17 16 15
結論
チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。
-
C++でn以下のすべての階乗数を検索します
ここでは、n以下のすべての階乗数を出力する方法を説明します。数値Nは、正の数の階乗である場合、階乗数と呼ばれます。したがって、いくつかの階乗数は1、2、6、24、120です。 階乗数を印刷するために、階乗を直接見つける必要はありません。 i =1から始めて、階乗*iを出力します。最初は階乗は1です。理解を深めるためにコードを見てみましょう。 例 #include <iostream> using namespace std; void getFactorialNumbers(int n) { int fact = 1; int
-
各要素がN以下になるような一意のペアを見つけるC++プログラム
この記事では、N以下の要素を持ち、いくつかの特定の条件に従う一意の数のペアを見つけるプログラムについて説明します- 2つの数値の差の二乗は、これら2つの数値のLCMと等しくなければなりません。 これらの2つの数値のHCFは、任意の2つの連続する数値の積として表すことができます。 この問題を解決するための最良のアプローチは、2つの連続した数(1から開始)を取り、それらの数の積の倍数を見つけることです。次に、倍数の中で、1つのペアの数値を指定するには、ペアの数値が最初に指定された条件を満たすかどうかを確認する必要があります。 たとえば、2と3の場合を考えます。それらの積は6にな