使用 Python 檢查包含質數的陣列的乘積是否為完全平方數


假設我們有一個包含所有質數的陣列 nums。我們必須檢查 nums 中所有數字的乘積是否是完全平方數。

因此,如果輸入為 nums = [3,3,7,7],則輸出將會是 True,因為 nums 中所有元素的乘積是 441,這是完全平方數,因為 21^2 = 441。

要解決這個問題,我們需要遵循以下步驟:

  • m := 包含 nums 中所有元素及其頻率的地圖
  • 對於 nums 中的每個鍵執行以下操作:
    • 如果 m[key] 是奇數,則
      • 返回 False
  • 返回 True

示例

為了更好地理解,我們來看看以下實現方式:

 線上演示

from collections import defaultdict
def solve(nums) :
   m = defaultdict(int)
   for key in nums :
      m[key] += 1
   for key in nums :
      if m[key] % 2 == 1 :
         return False
   return True
nums = [3,3,7,7]
print(solve(nums))

輸入

[3,3,7,7]

輸出

True

更新日期:19-Jan-2021

134 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.