<pre class="lang-py prettyprint-override"><code>def ggt2(a, b):
while b != 0:
t = b
b = a % b
a = t
return a if a != 0 else None
a = int(input("Enter a: "))
b = int(input("Enter b: "))
print("Their GCD is: "+str(ggt2(a,b)))
</code></pre>
<p>此代码从<a href="https://en.wikipedia.org/wiki/Euclidean_algorithm" rel="nofollow noreferrer">Wikipedia</a>上的伪代码转换为Python,只做了一些小的更改</p>
<p>您的代码有一些问题。以下是您的代码:</p>
<pre class="lang-none prettyprint-override"><code>GCD :var X,Y,R: int;
input X,Y;
R:=1;
while R ≠ 0 do
R:=X mod Y; X:=Y; Y:=R;
od;
output X.
</code></pre>
<p>这说明:</p>
<ol>
<li>开始<code>GCD</code></li>
<li>分别创建类型为<code>X</code>、<code>Y</code>和<code>R</code>的变量</li>
<li>向<code>X</code>和<code>Y</code>输入一个值</li>
<li>将<code>R</code>设置为1</li>
<li>虽然<code>R</code>不等于<code>0</code>do:</li>
<li>(在5的循环中)将<code>R</code>设置为<code>X</code>%<code>Y</code>(剩余的<code>X</code>和<code>Y</code>)</li>
<li>(在5的循环中)将<code>X</code>设置为<code>Y</code></li>
<li>(在5的循环中)将<code>Y</code>设置为<code>R</code></li>
<li>从语句5迭代开始循环结束</li>
<li>打印出<code>X</code></li>
</ol>
<p>此转换为Python的伪代码将是:</p>
<pre class="lang-py prettyprint-override"><code>def GCD():
X = int(input("Enter X: "))
Y = int(input("Enter Y: "))
R = 1
while R != 0:
R = X % Y
X = Y
Y = R
print(X)
GCD()
</code></pre>
<p>试着找出它是如何工作的,并在评论中告诉我它是否适合你</p>