Python GCD算法不使用'定义'

时间:2018-05-19 11:50:08

标签: python

我需要制作两种不同类型的代码才能找到GCD。 我不允许使用def(),因为我还没有学习它。

这是我的第一个代码。我不应该在这里使用euclid方法。 我需要输入两个数字, 并将较小的一个设置为' bound'。

num1, num2 = (input("input two integers to find GCD: ")).split()
num1=int(num1); num2=int(num2)


if num1 > num2:
    bound == num2

elif num1 < num2:
    bound == num1

i=2

while (i <= bound) :
    if (num1 % i == 0) and (num2 % i == 0):
        i == GCD
        i=i+1

print("The GCD for %d, %d is %d."%(num1,num2,GCD))

这是我的第二个代码。在这里,我需要使用euclid方法。 我尽我所能,但我无法理解我的错误。

num1, num2 = (input("input two integers to find GCD: ")).split()
num1=int(num1)
num2=int(num2)

temp=num1%num2

while (num1 != 0):
    num1=num2;
    num2=tmp;
    tmp=num1%num2

print("The GCD for %d, %d is %d."%(num1, tmp, num2))

1 个答案:

答案 0 :(得分:0)

GCD代表您的第一个代码: 修改:您使用的是==而不是=

num1, num2 = (input("input two integers to find GCD: ")).split()
num1=int(num1)
num2=int(num2)


if num1 > num2:
    bound = num2

elif num1 < num2:
    bound = num1

i=2

for i in range(1, bound+1):
    if (num1 % i == 0) and (num2 % i == 0):
        gcd=i
        i=i+1

print("The GCD for %d, %d is %d."%(num1,num2,gcd))

GCD代表您的第二个代码而不使用使用euclid方法的def:

num1, num2 = (input("input two integers to find GCD: ")).split()
num1 = int(num1)
num2 = int(num2)
while num1 != num2:
    if num1 > num2:
        num1 = num1 - num2
    else:
        num2 = num2 - num1
print(num1)