Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 소수를 포함하는 배열의 곱이 완전제곱수인지 확인

<시간/>

모든 소수가 포함된 배열 num이 있다고 가정합니다. nums에 있는 모든 숫자의 곱이 완전제곱수인지 확인해야 합니다.

따라서 입력이 nums =[3,3,7,7]과 같으면 nums의 모든 요소의 곱이 441이고 21^2 =441과 같은 완전제곱이므로 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • m :=숫자와 그 빈도의 모든 요소를 ​​포함하는 지도
  • nums의 각 키에 대해 다음을 수행합니다.
    • m[key]가 홀수이면
      • 거짓을 반환
  • 참 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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