สมมติว่าเรามีสองอาร์เรย์ที่เรียกว่า 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