📅  最后修改于: 2023-12-03 15:41:39.260000             🧑  作者: Mango
在给定的数组中,我们寻找具有至少一个共同数字的所有对。例如,对于数组[12, 68, 75, 43, 50, 62, 98],我们可以找到以下三个对:
首先,我们需要明确一个数字具有哪些因素。例如,数字42具有因素4和因素2。我们可以使用以下代码来计算一个数字的因素:
def get_factors(num):
factors = set()
for i in range(2, num):
if num % i == 0:
factors.add(i)
return factors
接下来,我们可以编写一个函数来确定两个数字是否具有相同的因素:
def have_common_factors(num1, num2):
return bool(get_factors(num1) & get_factors(num2))
最后,我们可以使用以下代码来找到具有至少一个共同数字的所有对:
def get_common_pairs(arr):
pairs = []
for i in range(len(arr)):
for j in range(i + 1, len(arr)):
if have_common_factors(arr[i], arr[j]):
pairs.append((arr[i], arr[j]))
return pairs
这将返回一个包含具有至少一个共同数字的所有对的列表。
通过使用以上代码,我们可以在给定的数组中找到具有至少一个共同数字的所有对。使用Python中的集合,我们可以轻松地计算数字的因素,并使用它们来确定数字是否具有共同因素。最后,我们可以使用两个嵌套的循环来查找数组中具有共同数字的所有对。