ユークリッド アルゴリズムを使用して、与えられた 2 つの整数の最大公約数 (GCD) を計算するプログラムを作成しています。入力には、空白で区切られた 2 つの正の整数 x と y が含まれます。0 0 が入力されると、プログラムは終了します。私はPythonを始めたばかりで、間違いなくプログラミングの初心者なので、コーディングの練習は少し荒いかもしれません. 計算された GCD を入力と同じ行に出力しようとしています。その計算された値を、2 つの整数を入力したのと同じ行に出力するにはどうすればよいですか?
入力が完了すると、次のようになります。
入力:
210 45 15
これが私ができるすべてです:
入力:
210 45
15
これまでのところ、Python 2.7 用のこのコードがあります。
def gcd (x, y): # Greatest Common Divisor function
if x > y:
r = x%y # r = x divided by y and gives the remainder
if r == 0: # if the division of x and y has no remainder, return y because y is the gcd.
return y #This is true because no number may have a divisor greater than the number itself (non-negative).
else:
return gcd(y, r) #if a = bt+r, for integers t and r, then gcd(x,y) = gcd(b,r)
if x < y:
x, y = y, x # value swapping
return gcd(x, y)
getinput = True
while(getinput):
#list created for storing user entered values
ssplit = []
s = raw_input('Input: \n ') # read a string of data, no evaluation by python
ssplit = s.split(' ') # read values between whitespace
x = int(ssplit[0]) # place value from raw_input() into list
y = int(ssplit[1])
if( x != 0 and y != 0 ): #tests to see if gcd needs to be evaluated
print (gcd (x, y))
else:
getinput = False # input was 0 0