program euclidean_gcd
implicit none
integer :: a, b, temp
print *, '2つの自然数を入力してください(空白で区切る):'
read *, a, b
! 入力値が負でないか確認
if (a <= 0 .or. b <= 0) then
print *, '正の整数を2つ入力してください。'
stop
end if
! ユークリッドの互除法
do while (b /= 0)
temp = b
b = mod(a, b)
a = temp
end do
print *, '最大公約数は:', a
end program euclidean_gcd
cHJvZ3JhbSBldWNsaWRlYW5fZ2NkCiAgICBpbXBsaWNpdCBub25lCiAgICBpbnRlZ2VyIDo6IGEsIGIsIHRlbXAKCiAgICBwcmludCAqLCAnMuOBpOOBruiHqueEtuaVsOOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhO+8iOepuueZveOBp+WMuuWIh+OCi++8iTonCiAgICByZWFkICosIGEsIGIKCiAgICAhIOWFpeWKm+WApOOBjOiyoOOBp+OBquOBhOOBi+eiuuiqjQogICAgaWYgKGEgPD0gMCAub3IuIGIgPD0gMCkgdGhlbgogICAgICAgIHByaW50ICosICfmraPjga7mlbTmlbDjgpIy44Gk5YWl5Yqb44GX44Gm44GP44Gg44GV44GE44CCJwogICAgICAgIHN0b3AKICAgIGVuZCBpZgoKICAgICEg44Om44O844Kv44Oq44OD44OJ44Gu5LqS6Zmk5rOVCiAgICBkbyB3aGlsZSAoYiAvPSAwKQogICAgICAgIHRlbXAgPSBiCiAgICAgICAgYiA9IG1vZChhLCBiKQogICAgICAgIGEgPSB0ZW1wCiAgICBlbmQgZG8KCiAgICBwcmludCAqLCAn5pyA5aSn5YWs57SE5pWw44Gv77yaJywgYQplbmQgcHJvZ3JhbSBldWNsaWRlYW5fZ2NkCgo=