查找两组数字的公因数个数的程序


假设我们有两个数组,名为nums1和nums2。我们必须找到满足以下条件的值的个数:

  • nums1中的元素是正在选择的元素的因数

  • 所选择的元素是nums2所有元素的因数

因此,如果输入类似于nums1 = [3,9] nums2 = [27, 81],则输出为2,因为数字为9和27,因为

  • 9 mod 3 = 0

  • 9 mod 9 = 0

  • 27 mod 9 = 0

  • 81 mod 9 = 0

  • 27 mod 3 = 0

  • 27 mod 9 = 0

  • 27 mod 27 = 0

  • 81 mod 27 = 0。

为了解决这个问题,我们将遵循以下步骤:

  • count := 0
  • 对于i从1到100,执行:
    • flag := True
    • 对于nums1中的每个j,执行:
      • 如果i mod j不等于0,则
        • flag := False
        • 跳出循环
    • 如果flag为真,则
      • 对于nums2中的每个k,执行:
        • 如果k mod i不等于0,则
          • flag := False
          • 跳出循环
    • 如果flag为真,则
      • count := count + 1
  • 返回count

示例

让我们来看下面的实现以更好地理解

def solve(nums1, nums2):
   count = 0
   for i in range(1,101):
      flag = True
      for j in nums1:
         if i%j != 0:
            flag = False
            break
      if flag:
         for k in nums2:
            if k%i!=0:
               flag = False
               break
      if flag:
         count+=1
         return count

nums1 = [3,9]
nums2 = [27, 81]
print(solve(nums1, nums2))

输入

[3,9], [27, 81]

输出

1

更新于:2021年10月12日

43 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告