/* 田中 C言語 演習5 */
#include <stdio.h>
/* main関数の定義 */
int main(void)
{
int a[100]; //互除法を行う自然数を入れる配列
int num;
int i;
printf("ユークリッドの互除法を用いて2つの自然数の最大公約数を求めます。\n");
/* 二つの自然数の標準入力・確認 */
printf("1つ目の自然数を入力してください。(0<n)\n"); printf("入力された自然数は%dです。\n", a
[0]);
printf("2つ目の自然数を入力してください。(0<n)\n"); printf("入力された自然数は%dです。\n", a
[1]);
/* エラー処理 */
if( a[0] <= 0 || a[1] <= 0){
return 1;
}
/* a>bになるように調整 */
if(a[1] > a[0]){
num = a[0];
a[0] = a[1];
a[1] = num;
}
/* 計算処理 */
for(i=2; i<100 ;i++){
a[i] = a[i-2] % a[i-1];
if(a[i] == 0){
printf("%dと%dの最大公約数は%dです\n", a
[0], a
[1], a
[i
-1]); break;
}
}
return 0;
}
Ci8qIOeUsOS4rSBD6KiA6KqeIOa8lOe/kjUgKi8KCiNpbmNsdWRlIDxzdGRpby5oPgoKLyogbWFpbumWouaVsOOBruWumue+qSAqLwppbnQgbWFpbih2b2lkKQp7CglpbnQgYVsxMDBdOwkJLy/kupLpmaTms5XjgpLooYzjgYboh6rnhLbmlbDjgpLlhaXjgozjgovphY3liJcKCWludCBudW07CglpbnQgaTsKCglwcmludGYoIuODpuODvOOCr+ODquODg+ODieOBruS6kumZpOazleOCkueUqOOBhOOBpjLjgaTjga7oh6rnhLbmlbDjga7mnIDlpKflhazntITmlbDjgpLmsYLjgoHjgb7jgZnjgIJcbiIpOwoKLyog5LqM44Gk44Gu6Ieq54S25pWw44Gu5qiZ5rqW5YWl5Yqb44O756K66KqNICovCglwcmludGYoIjHjgaTnm67jga7oh6rnhLbmlbDjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgIIoMDxuKVxuIik7CglzY2FuZigiJWQiLCAmYVswXSk7CglwcmludGYoIuWFpeWKm+OBleOCjOOBn+iHqueEtuaVsOOBryVk44Gn44GZ44CCXG4iLCBhWzBdKTsKCglwcmludGYoIjLjgaTnm67jga7oh6rnhLbmlbDjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgIIoMDxuKVxuIik7CglzY2FuZigiJWQiLCAmYVsxXSk7CglwcmludGYoIuWFpeWKm+OBleOCjOOBn+iHqueEtuaVsOOBryVk44Gn44GZ44CCXG4iLCBhWzFdKTsKCgovKiDjgqjjg6njg7zlh6bnkIYgKi8KCWlmKCBhWzBdIDw9IDAgfHwgYVsxXSA8PSAwKXsKCQlwcmludGYoIjDku6XkuIrjga7mlbDlgKTjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYRcbiIpOwoJCXJldHVybiAxOwoJfQoKCi8qIGE+YuOBq+OBquOCi+OCiOOBhuOBq+iqv+aVtCAqLwoJaWYoYVsxXSA+IGFbMF0pewoJCW51bSA9IGFbMF07CgkJYVswXSA9IGFbMV07CgkJYVsxXSA9IG51bTsJCSAKCX0KCi8qIOioiOeul+WHpueQhiAqLwoJZm9yKGk9MjsgaTwxMDAgO2krKyl7CgkJYVtpXSA9IGFbaS0yXSAlIGFbaS0xXTsKCQlpZihhW2ldID09IDApewoJCXByaW50ZigiJWTjgaglZOOBruacgOWkp+WFrOe0hOaVsOOBryVk44Gn44GZXG4iLCBhWzBdLCBhWzFdLCBhW2ktMV0pOwoJCWJyZWFrOwoJCX0KCX0KCglyZXR1cm4gMDsKfQ==