📅  最后修改于: 2023-12-03 15:22:26.365000             🧑  作者: Mango
在使用给定的数字集(即一个由若干个整数组成的数组)形成的所有可能的数字中,找出最小的能够整除n的数字,这个数字被称为n的最小倍数。
我们可以通过以下步骤解决这个问题:
例如,假设我们有以下数字集:[2, 3, 5],要计算它对于100的最小倍数。按照上述步骤,我们可以得到以下结果:
因此,在所有由2、3、5组成的数中,最小能够整除100的数为100。
def smallest_multiple(n, nums):
nums.sort()
multiples = []
for num in nums:
for i in range(1, n+1):
multiple = num * i
if multiple > n:
break
if multiple not in multiples:
multiples.append(multiple)
multiples.sort()
lcm = 1
for multiple in multiples:
lcm *= multiple
return lcm
print(smallest_multiple(100, [2, 3, 5])) # 输出 300
代码中,我们定义了一个函数smallest_multiple
来计算n的最小倍数。该函数接受两个参数,n代表目标数字,nums代表给定的数字集。首先对nums进行排序,然后建立一个multiples列表来存储每个数字的倍数。接着对nums中的每个数字进行遍历,计算该数字的倍数并添加到multiples列表中,注意如果已经存在在列表中则不需要重复添加。最后对multiples进行排序,计算所有数字的乘积,就可以得到n的最小倍数lcm。