Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าผลคูณของ Array ที่ประกอบด้วยจำนวนเฉพาะ เป็น Perfect Square หรือไม่ด้วย Python


สมมติมี Array nums ที่มีเฉพาะจำนวนเฉพาะ ต้องตรวจสอบว่าผลคูณของทุกตัวใน nums เป็น Perfect Square หรือไม่

เช่น Input nums = [3,3,7,7] Output True เพราะ 3*3*7*7 = 441 = 21^2

ขั้นตอนแก้:

  • สร้าง Map m นับความถี่ของแต่ละตัวใน nums
  • ถ้ามี Key ใดที่ความถี่เป็นคี่ Return False
  • Return 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))

Input

[3,3,7,7]

Output

True