Python 求2~4个数的最大公约数

可以不是2-4个数而是多个数的最大公约数,但是不能只求两个数的最大公约数。最好用穷举法。谢谢各位。... 可以不是2-4个数而是多个数的最大公约数,但是不能只求两个数的最大公约数。最好用穷举法。谢谢各位。 展开
 我来答
大地广场舞
2018-12-08 · 北京玲珑广场舞、紫竹院广场舞等优秀舞蹈
大地广场舞
采纳数:201 获赞数:1286

向TA提问 私信TA
展开全部
#穷举法求最大公约数
def Sort_xyz(x,y,z,):
     l = [x,y,z]
     l.sort()
     return l 
 
def Gcd(x,y,z):
     x,y,z = Sort_xyz(x,y,z)
     for i in range(1,z + 1):
          if x % i == 0 and y % i == 0 and z % i == 0:
               gcd = i
     return gcd

print(Gcd(135,55,160))
Res_TP
2018-12-07 · TA获得超过1544个赞
知道小有建树答主
回答量:587
采纳率:85%
帮助的人:239万
展开全部
def GreatCommonDiv(numbers):
    mx = reduce(lambda x, y: max(x, y), numbers)
    
    while True:
        flag = True
        for number in numbers:
            if number % mx != 0:
                flag = False
                break
        if flag == True:
            return mx
        mx -= 1

if __name__ == "__main__":
    # 测试
    print(GreatCommonDiv([1, 2, 3, 4, 5]))
    print(GreatCommonDiv([12, 24, 18, 8]))
    print(GreatCommonDiv([128, 256, 192]))
    
    # 测试结果
    # 1
    # 2
    # 64
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神谷道161
2018-12-06 · 超过20用户采纳过TA的回答
知道答主
回答量:76
采纳率:42%
帮助的人:13.1万
展开全部
PrivateSubCommand1_Click() DimSAsLong S=YueOrBei(24,32) MsgBox"24和32的最大公约数是:"&S,vbInformation S=YueOrBei(24,32,True) MsgBox"24和32的最小公倍数是:"&S,vbInformation EndSub PrivateFunctionYueOrBei(J1AsLong,J2AsLong,OptionalIsBeiAsBoolean)AsLong'IsBei=True返回公倍数(最小),否则返回公约数(最大) DimSAsLong,S1AsLong,S2AsLong S1=J1:S2=J2 Do S=S1ModS2 IfS=0ThenYueOrBei=S2:ExitDo S1=S2:S2=S Loop IfIsBeiThenYueOrBei=J1*J2/YueOrBei EndFunction另一种方法 PrivateSubForm_Click() m1=InputBox("输入m") n1=InputBox("输入n") Ifm1>n1Then'为了求最小公倍数,增加m,n变量 m=m1:n=n1 Else m=n1:n=m1 EndIf'm>n r=mModn DoWhiler>0 m=n n=r r=mModn Loop Printm1;",";n1;"的最大约数为";n Print"最小公倍数=",m1*n1/n EndSub
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式