Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9318

C# 最大公約数と最小公倍数

$
0
0

競技プログラミングの問題を解いている際に、最小公倍数か最大公約数を求める必要に迫られる場合がある。
今までは、先人らのコードをコピペして使わせて頂いていたのだが、モラル的に良くない気がしたので自分用に書いたため、貼っておく。
型などlongの方が良いかも。
最大公約数はユークリッドの互除法より得られ、また最小公倍数は元の2数をかけて最大公約数で割ったものから得られる。

9,18の場合...最大公約数は9,これらをかけて9で割るので18が最小公倍数となる。

// 最大公約数publicstaticintGcd(inta,intb){varx=0;while(true){// 割り切れたらif(a%b==0){returnb;}else{x=a%b;a=b;b=x;}}}// 最小公倍数publicstaticintLcm(inta,intb){varx=Gcd(a,b);returna*b/x;}

呼び出し方としては、こんな感じで(適当にMain関数の中で呼んだけど)指定してあげてね。

usingSystem;publicstaticvoidMain(){vara=10;varb=20;Console.WriteLine(Gcd(a,b));Console.WriteLine(Lcm(a,b));}

Viewing all articles
Browse latest Browse all 9318

Latest Images

Trending Articles