FC2ブログ
ヽ|∵|ゝ(Fantom) の 開発blog? ホーム » C# »【C#】最小公倍数を求める(ユークリッドの互除法)

【C#】最小公倍数を求める(ユークリッドの互除法)  


 前回の最大公約数の求め方のついで。

 ユークリッドの互除法が実装できてれば、最小公倍数を求めるのは簡単だ。

 前回の Gcd (Greatest Common Divisor) を用いて、Lcm (Least Common Multiple) を書いてみよう。

●最小公倍数を求める(ユークリッドの互除法)
/// <summary>
/// 最小公倍数を求める(Least Common Multiple)
/// 2020/11/14 Fantom
/// http://fantom1x.blog130.fc2.com/blog-entry-385.html
/// http://fantom1x.blog130.fc2.com/blog-entry-384.html
/// http://fantom1x.blog130.fc2.com/blog-entry-215.html#lcm
/// </summary>
/// <param name="a">数値1 (>0)</param>
/// <param name="b">数値2 (>0)</param>
/// <returns>最小公倍数</returns>
public static int Lcm(this int a, int b)
{
return a * b / Gcd(a, b); //※Gcd は前回の記事を参照
}

●メインコード例
using System;

int h = 16;
int v = 9;
int m = Lcm(h, v);
Console.WriteLine("m = " + m);

m = 144

 a > 0, b > 0 となっているので注意(特に負の剰余は言語によって結果が違うので注意)。

 Gcd() は前回の記事からコピペしてきて欲しい。

 これも Java からのそのまま移植なので、解説は以前の記事を見て欲しい。ユークリッド互除法最小公倍数の定義に関する説明も Wikipedia で良いだろう。数学的なものはこの辺りの例を見ればわかるだろう。

 定義をそのままコーディングしたようなものなので、他言語でも簡単に移植できると思う。

【Java】最大公約数・最小公倍数を求める(ユークリッドの互除法)
ユークリッドの互除法 (Wikipedia)
最小公倍数 (Wikipedia)
最大公約数と最小公倍数







(関連記事)
【C#】最大公約数を求める/分数の約分をする(ユークリッドの互除法)
【Unity】【C#】画面解像度とアクペクト比(整数)を求める
【Java】最大公約数・最小公倍数を求める(ユークリッドの互除法)
【Java】3つ以上の最大公約数を求める(ユークリッドの互除法②)
【Java】拡張ユークリッドの互除法


関連記事
スポンサーサイト



category: C#

thread: プログラミング

janre: コンピュータ

tag: アルゴリズム  算術関数  約数 
tb: 0   cm: --


トラックバック

トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/385-56c12439
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

Social

検索フォーム

全記事一覧

カテゴリ

ユーザータグ

最新記事

リンク

PR

▲ Pagetop