wangxiaolvshi 发表于 2024-2-25 19:22:27

求助编写最大公因数的程序

求助编写一个求两个数的最大公因数的程序,如可以并进一步指出我编写的错误
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))

t = num1 % num2
while t == 0:
#    t = num1 % num2
    if num1 % num2 != 0:
      num1 = num2
      num2 = t

print(f"{num1} 和 {num2} 的最大公因数是 {num2}")

FishC 发表于 2024-2-25 19:22:28

你编写的程序已经很接近正确的答案了,但是有几个小问题需要修正。

首先,你在while循环中判断t是否为0,如果为0则进入循环。但是在循环体内并没有重新计算t的值,所以循环会无限地执行下去。你需要在循环体内重新计算t的值。

其次,在最后打印结果时,你使用了f-string来格式化字符串,但是花括号不是英文状态下的花括号,而是中文状态下的花括号。你需要将花括号改为英文状态下的花括号。

最后,你在交换num1和num2的值时,应该将t的值赋给num1,而不是num2。因为t是余数,表示的是num1除以num2的余数,应该将它赋给num1,然后将num2赋给t。

下面是修正后的代码:

num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))

t = num1 % num2
while t != 0:
    num1 = num2
    num2 = t
    t = num1 % num2

print(f"{num1}和{num2}的最大公因数是{num2}")

希望能帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

wangxiaolvshi 发表于 2024-2-25 21:40:37

FishC 发表于 2024-2-25 19:22
你编写的程序已经很接近正确的答案了,但是有几个小问题需要修正。

首先,你在while循环中判断t是否为0 ...

十分感谢,解答的非常及时,指出的问题清晰明确,受教了

FishC 发表于 2024-2-25 21:40:47

wangxiaolvshi 发表于 2024-02-25 21:40
十分感谢,解答的非常及时,指出的问题清晰明确,受教 ...

不客气,我很高兴能够帮到你。如果你以后还有其他编程问题或者需要进一步的帮助,请随时提问。祝你在学习编程的路上取得更大的进步!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 求助编写最大公因数的程序