Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem mảng đã cho có chứa tất cả các ước của một số nguyên trong Python hay không

Giả sử chúng ta có một số mảng, chúng ta phải kiểm tra xem mảng này có chứa tất cả các ước của một số nguyên hay không.

Vì vậy, nếu đầu vào giống như nums =[1, 2, 3, 4, 6, 8, 12, 24], thì đầu ra sẽ là True vì đây là các ước của 24.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • tối đa:=tối đa là nums
  • temp:=một danh sách mới
  • đối với tôi trong phạm vi từ 1 đến căn bậc hai của tối đa, hãy thực hiện
    • nếu giá trị lớn nhất chia hết cho i thì
      • chèn tôi vào cuối thời gian tạm thời
      • nếu thương của (tối đa / i) không giống với i, thì
        • chèn thương số của (tối đa / i) vào cuối tạm thời
    • nếu kích thước của nhiệt độ không giống với kích thước của nums, thì
      • trả về Sai
    • sắp xếp số lượng danh sách và tạm thời
    • đối với tôi trong phạm vi từ 0 đến kích thước là nums - 1, thực hiện
      • nếu temp [i] không giống như nums [i], thì
        • trả về Sai
  • trả về True

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Mã mẫu

from math import sqrt
 
def solve(nums):
   maximum = max(nums)
 
   temp = []
   for i in range(1,int(sqrt(maximum))+1):
      if maximum % i == 0:
         temp.append(i)
         if (maximum // i != i):
           temp.append(maximum // i)
 
   if len(temp) != len(nums):
      return False
 
   nums.sort()
   temp.sort()
 
   for i in range(len(nums)):
      if temp[i] != nums[i]:
         return False
   return True
   
nums = [1, 2, 3, 4, 6, 8, 12, 24]
print(solve(nums))

Đầu vào

[1, 2, 3, 4, 6, 8, 12, 24]

Đầu ra

True