查詢兩組數字的公因數個數的程式


假設我們有兩個陣列,名為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
        • 跳出迴圈
    • 如果flag為真,則
      • 對於nums2中的每個k,執行:
        • 如果k mod i不等於0,則
          • flag := False
          • 跳出迴圈
    • 如果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

更新於:2021年10月12日

43 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.