2つの正の整数を入力し,最大公約数・最小公倍数を出力するプログラムを作成せよ.
以下の仕様を満足していること.
考察課題(必須)
標準入力からの値の読み込み部分を,scanf関数を用いたものに変更し,変更前と変更後の仕様以外の入力による挙動の違いを調べよ。
考察課題(オプション)
下記から1つ選んでその内容について考察せよ(2つ選択してもよい).
- 作成したプログラムの入力の数値の上限を調べよ(1.1参照)
- 再入力させる部分のプログラム構造のバリエーションについて考えよ
この他にも,課題作成に当たって創意工夫した点や,自分のプログラムの問題点,改良の余地について何かあれば考察に記入すること.
【ヒント】
ユークリッドの互除法は2つの正の整数m, n の最大公約数を計算するための方法です.アルゴリズムは下記のとおりです
- m を n で割り余りを r とする
- r = 0 ならば 4へ.r が 0 でない場合は 3 へ.
- 新 m = (これまでの) n.
新 n = (いまの余り) r.
とし,1 へ.- n の値が最大公約数となる.
例として60と32の最大公約数を求めてみる.
60 ÷ 32 = 1 余り 28
32 ÷ 28 = 1 余り 4
28 ÷ 4 = 7 余り 0
最後の割った数は 4 であるから,4 が最大公約数となる.