两个整数公有的倍数称为它们的公倍数,其中最小的一个正整数称为它们两个的最小公倍数。当然,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)
提交结果