PTA习题-python 7-4 多个数的最小公倍数

两个整数公有的倍数称为它们的公倍数,其中最小的一个正整数称为它们两个的最小公倍数。当然,n个数也可以有最小公倍数,例如:5,7,15的最小公倍数是105。
输入n个数,请计算它们的最小公倍数。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。
每组测试先输入一个整数n(2≤n≤20),再输入n个正整数(属于[1,100000]范围内)。这里保证最终的结果在int型范围内。

输出格式:

对于每组测试,输出n个整数的最小公倍数。

输入样例:

4
3 5 7 15
5 1 2 4 3 5
8 7 15 12 3 4 6 4 9
2 45000 50000

输出样例:

105
60
1260
450000

代码实现 

def isPrime(n): # 判断是否为质数
    for i in range(2, int(n**0.5+1)):
        if n % i == 0:
            return False
    return True 

def min_gongbei(a,b):  #求两数的最小公倍数
    if max(a,b)%min(a,b)==0:
        return max(a,b)
    elif isPrime(a) and isPrime(b):
        return a*b
    else :
        t = 2
        while 1:
            if (max(a,b)*t)%(min(a,b)) == 0:
                break
            t = t + 1
        return max(a,b)*t

t = int(input())
for i in range(t):
    lis = list(map(int,input().split()))
    del lis[0] #删去第一个数即题目里的n,用不上
    temp = 1
    for k in range(len(lis)): # 两两来计算最小公倍数
        temp = min_gongbei(temp,lis[k])
    print(temp)

 提交结果

 

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值