假设我们有一个数组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