查找两组数字的公因数个数的程序
假设我们有两个数组,名为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
- 跳出循环
- 如果i mod j不等于0,则
- 如果flag为真,则
- 对于nums2中的每个k,执行:
- 如果k mod i不等于0,则
- flag := False
- 跳出循环
- 如果k mod i不等于0,则
- 对于nums2中的每个k,执行:
- 如果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
广告