小演習①

コンピュータ基礎
(2015年度)
実施日
演習1
グループ
学籍番号
氏 名
9月29日
(1)講義で説明のあった最大公約数を求める互減法を用いて、図 1 の 2 数の最大公約数を、必要な空欄を埋め
ながら求めよ。
x
y
x
y
148
120
36
168
従って最大公約数は
従って最大公約数は
図1 互減法
図2 互除法
(2)最大公約数を求める別の方法に以下のユークリッドの互除法という方法がある。この手順に従って、上の
図 2 の 2 数の最大公約数を求めよ。
整数 x,y のペアについて、
① x を y で割った余りを求める(これを z とする)
。
② z が 0 ならば y が求める最大公約数である。z が 0 でなければ、
③ 直前のペアの y を x の下に書く。
④ ②で求めた z を y の下に書く。
⑤ ④で揃ったペアを新しい x,y として①からの操作を繰り返す。
(3)
(2)のユークリッドの互除法を C++で記述した下記のコードの空欄部を埋めよ。
int x,y,z;
cout<<"Input x,y -->";
cin>>x>>y; // xとyを入力
while((z= x%y )!=
x = y
;
y = z
;
}
0
){
cout <<“最大公約数は"<<
y
<<endl;
(4)上記の互減法と互除法について述べた以下の記述で正しいものの文頭に○をつけよ。
・同じ組合せの整数ペアを与えられたとき、最大公約数を求めるまでの同じ計算の繰り返し回数を
比較すると互除法が互減法より多くなることはない
・互減法で入力される2つの整数は 1 つ目の方が 2 つ目よりも大きくなければならない
・互除法で入力される2つの整数は 1 つ目の方が 2 つ目よりも大きくなければならない
・互減法、互除法のどちらも入力される2つの整数の大小関係は問われない