Giả sử chúng ta có hai mảng được gọi là nums1 và nums2. Chúng ta phải tìm số lượng giá trị thỏa mãn các điều kiện sau -
-
Các phần tử trong nums1 là các phần tử của các phần tử đang được chọn
-
Các phần tử được chọn là một phần tử của tất cả các phần tử của nums2
Vì vậy, nếu đầu vào là nums1 =[3,9] nums2 =[27, 81], thì đầu ra sẽ là 2 vì các số là 9 và 27, bởi vì
-
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.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- số lượng:=0
- đối với tôi trong phạm vi từ 1 đến 100, hãy thực hiện
- cờ:=True
- đối với mỗi j trong nums1, thực hiện
- nếu tôi mod j không phải là 0, thì
- cờ:=Sai
- ra khỏi vòng lặp
- nếu tôi mod j không phải là 0, thì
- nếu cờ là true, thì
- với mỗi k trong nums2, thực hiện
- nếu k mod i không phải là 0, thì
- cờ:=Sai
- ra khỏi vòng lặp
- nếu k mod i không phải là 0, thì
- với mỗi k trong nums2, thực hiện
- nếu cờ là true, thì
- count:=count + 1
- số lần trả lại
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn
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)) Đầu vào
[3,9], [27, 81]
Đầu ra
1