python 求最大公约数

问题:首先,两数都可以折半的话(可以用2来约分),就折半,折了之后最后要乘回去。当不可以折半时,那么就比较分母和分子的大小,用大数减去小数,互相减来减去,一直到减数与差相等为止,用这个相等的数字来约分。就是像辗转相除法一样,

img

请问这个代码我要怎么修改

你这是相减法吗?
你题目的解答代码如下:

a = int(input("请输入一个整数:"))
b = int(input("请输入一个整数:"))
if b>a:
    a,b = b,a
i = 0
while a%2==0 and b%2==0:
    a = a / 2
    b = b / 2
    i += 1
    print(a,b)
    print(i)
while a!=b:
    if a>b:
        a = a - b
    else:
        b = b - a
c = a*2**i
print(c)

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

把最后的c = c 乘2乘i ,改成

c = c*2 ** i

就好了

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632