最大公約数とアルゴリズムの最小公倍数

最近、私はいくつかの簡単なC言語の問題を磨くようになりました。最大公約数と被写体の最小公倍数を達成するために探している、彼は行って、まだ未熟な発見したという印象があり、すべて私が使用した後のレビューのために、アイデアを書き留めることにしました。

 

次のようにすべての大規模から小規模までの最大の需要は、、最大公約数の条件を満たすことが最初ですので、私は、直接の暴力、1トライずつを解決する方法を考えるまず第一に

1の#include <iostreamの>
 2の#include <stdio.hの>
 3  使用して 名前空間をSTD。
4  INT メイン()
 5  {
 6      int型M、N。
7      int型の共通= 1000年8      CIN >> M。
9      CIN >> N。
10      一方、1 11  {
 12      
13      かの(M個の%の共通== 0 && N%の共通== 0 14      {
 15          COUT << 共通。
16         休憩;
17      }
 18      
19      {
 20          common-- 21      }
 22      
23 }     戻り 0 24 }

もちろん、その効率は明らかに高くありませんが、これは実際に最も直接的な方法をより良く理解ですが、数字が成長したとき。

 

ここで第二の方法は、「ユークリッド」があります:

  この方法もまた、我々はここで大小2つの数値を表し、最初の2つの数字、最大A minをとり、理解されます。

  最初のステップ:最大%の分で得られた結果は、我々はそれを格納する変数tempを取ります。したがってTEMPは最大%の分=。

  ステップ2:分をTEMP = 0になるまで上記の処理を継続、TEMPの値が割り当てられ、値min maxを割り当て、一時(すなわち、丸いMAX)の最大公約数で、すなわち

1の#include <iostreamの> 
 2  使用して 名前空間STDを、
3  のint main()の
 4  {
 5      INT TEMP = 1 、MAX、MIN。
6      cinを>> マックス。
7      cinを>> 分。
8      一方(TEMP)
 9      {
 10          TEMP =最大%の分;
11          最大値= 分;
12          分= TEMP。
13      }
 14      COUT << マックス。
15      リターン 0 ;
16 }

最小公倍数の最大公約数を取得した後、非常に短い(MAX *分)に等しい答え、/ TEMPなり、点と最大公約数を計算最小公倍数。

おすすめ

転載: www.cnblogs.com/Truedragon/p/12213634.html