สมมติว่าเรามีสองอาร์เรย์ที่เรียกว่า 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.
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- นับ :=0
- สำหรับผมในช่วง 1 ถึง 100 ทำ
- flag :=จริง
- สำหรับแต่ละ j ใน nums1 ทำ
- ถ้าฉัน mod j ไม่ใช่ 0 แล้ว
- ธง :=เท็จ
- ออกมาจากวงจร
- ถ้าฉัน mod j ไม่ใช่ 0 แล้ว
- ถ้าแฟล็กเป็นจริง
- สำหรับแต่ละ k ใน nums2 ทำ
- ถ้า k mod i ไม่ใช่ 0 แล้ว
- ธง :=เท็จ
- ออกมาจากวงจร
- ถ้า k mod i ไม่ใช่ 0 แล้ว
- สำหรับแต่ละ k ใน nums2 ทำ
- ถ้าแฟล็กเป็นจริง
- นับ :=นับ + 1
- จำนวนคืนสินค้า
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
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