查找两组数字的公因数个数的程序
假设我们有两个数组,名为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
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP