0

list_=[ ]在计算两个数字之间的 LCM 时,我应该如何存储一个值?我需要为这两个数字存储每个因素。

我的代码是:

def lcm(x, y):
    if x > y:
        greater = x
    else:
        greater = y
    lcms =[]
    while(True):

        if((greater % x == 0) and (greater % y == 0)):
            lcm = greater
            lcms.append(lcm)
            break   
        greater += 1
    print(lcms)
    return lcm


t= int(input())
for T in range(1, t+1):
    l= list(map(int, input().split()))
    print (lcm(x=l[0],y=l[1]))

假设测试用例输入是t=1l = [9, 20],其中输出是 180。所以,我需要打印一个列表,其中包含输入的每个 LCM 整数,然后我需要在它们之间打印 LCM。

我得到了 LCM 值,但无法打印list = [ ] 包含这样的 LCM[2,3,5]而不是[2,2,3,3,5] (原因:我还需要从列表中删除重复的整数值。)

4

1 回答 1

0

没问题,我得到了解决方案。谢谢您的帮助!!

   def lcm(x, y):
        a= x*y
        b=[]
        for i in range(2,a-1):
            if i > 1:
                for j in range(2,i):
                    if (i % j) == 0:
                        break
                else:
                    b.append(i)
        c= len(b)
        d=[]
        for k in b:
            if(a%k==0):
                d.append(k)
        total = 1 
        for x in d:
                total *= x      
        #print(total)

        #print(d)       
        return total


    t= int(input())
    for T in range(1, t+1):
        l= list(map(int, input().split()))
        print (lcm(x=l[0],y=l[1]))
于 2018-02-27T04:25:24.210 回答