Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra mảng có chứa tất cả ước số của một số nguyên trong Python

Cho mảng nums. Kiểm tra xem mảng có chứa đúng tất cả các ước số của một số nguyên nào đó hay không.

Ví dụ: [1,2,3,4,6,8,12,24] → True vì đây là tất cả ước số của 24.

Giải thuật

  • Tìm phần tử lớn nhất maximum trong mảng.
  • Tính tất cả ước số của maximum lưu vào mảng temp.
  • So sánh độ dài và các phần tử của temp với nums (sau khi sắp xếp).

Mã ví dụ

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