检查给定的数组是否包含Python中某个整数的所有除数

假设我们有一个数组nums,我们必须检查此数组是否包含某个整数的所有除数。

因此,如果输入类似于nums = [1、2、3、4、6、8、12、24],则输出将为True,因为它们是24的除数。

为了解决这个问题,我们将遵循以下步骤-

  • 最大:=最大数字

  • temp:=一个新列表

  • 对于范围1到最大值的平方根的i,执行

    • 如果temp [i]与nums [i]不同,则

    • 返回False

    • 返回False

    • 在temp的末尾插入i

    • 如果(maximum / i)的商与i不相同,则

    • 在temp的末尾插入(maximum / i)的商

    • 如果最大值可被i整除,则

    • 如果temp的大小与nums的大小不同,则

    • 排序列表nums和temp

    • 对于范围从0到nums的i-1,执行

    • 返回True

    让我们看下面的实现以更好地理解-

    范例程式码

    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 // 我!=我):
               temp.append(maximum // 一世)
     
       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))

    输入值

    [1, 2, 3, 4, 6, 8, 12, 24]
    输出结果
    True

    猜你喜欢