这个怎么用递归做呀,帮帮我

img

你好的,代码供参考:

a =[]
n = int(input())
while n>0:
    n-=1
    a.append( list(map(int, input().split())))
a0 = []
for i in range(len(a)):
    b = a[i]
    c = min(b)
    q = 1
    for j in range(1,c+1):
        flag = 1
        for k in range(len(b)):
            if(b[k]%j!=0):
                flag = 0
                break
        if(flag==1 and j>q):
            q = j
    print(q)
            

结果示例:

2
24 48 32 16 96
24 45 7 8
8
1

有帮助还请题主给个采纳支持一下哟,谢谢啦

def gcd(*args):
    v_min = min(args)
    i = 2
    while i <= pow(v_min, 0.5):
        new_args = list()
        for item in args:
            if item % i == 0:
                new_args.append(item//i)
            else:
                i += 1
                break
        else:
            return i * gcd(*new_args)
    return 1

    
gcd(24,48,32,16,96)
8
gcd(24,25,7,8)
1