通过在Python中乘以给定的质数来检查数组的元素是否可以相等

假设我们有两个数组,一个数组是nums,另一个数组是质数。我们必须检查是否可以通过将素数数组中的一个或多个素数相乘来使num的所有元素相等。

因此,如果输入像 nums = [25,100]  primes= [2,5],则输出将为True,因为我们可以将25与2乘以两次以获得100,那么所有元素都是相同的。

示例

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

from math import gcd
def array_lcm(nums):
   ans = nums[0]
   for i in range(1,len(nums)):
      ans = (nums[i]*ans)/gcd(nums[i], ans)
   return ans
def solve(nums, primes):
   lcm_arr = array_lcm(nums)
   for i in range(len(nums)):
      val = lcm_arr/nums[i]
      for j in range(len(primes) and val != 1):
         while (val % primes[j] == 0):
            val = val/primes[j]
      if (val != 1):
         return False
   return True
nums = [25, 100]
primes = [2, 5]
print(solve(nums, primes))

输入值

[25, 100], [2, 5]

输出结果

True
猜你喜欢