मान लीजिए हमारे पास एक सरणी nums है, हमें जांचना है कि क्या यह सरणी किसी पूर्णांक के सभी भाजकों को समाहित करती है या नहीं।
उदाहरण के लिए, यदि इनपुट nums = [1, 2, 3, 4, 6, 8, 12, 24] है, तो आउटपुट True होगा क्योंकि ये 24 के भाजक हैं।
हल करने का तरीका
- maximum := nums का अधिकतम मान
- temp := एक नई सूची
- 1 से maximum के वर्गमूल तक लूप चलाकर maximum के सभी भाजक temp में जोड़ें
- यदि temp का आकार nums के आकार के बराबर नहीं है, तो False लौटाएं
- nums और temp को सॉर्ट करें
- दोनों की तुलना करें: यदि कोई भाजक मेल नहीं खाता, तो False लौटाएं
- 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 // 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))
इनपुट
[1, 2, 3, 4, 6, 8, 12, 24]
आउटपुट
True