Giả sử chúng ta có hai mảng, một mảng là num và một mảng khác là số nguyên tố. Chúng ta phải kiểm tra xem có thể làm cho tất cả các phần tử của các số bằng nhau hay không bằng cách nhân một hoặc nhiều số nguyên tố từ mảng số nguyên tố.
Vì vậy, nếu đầu vào giống như nums =[25, 100] số nguyên tố =[2, 5], thì đầu ra sẽ là True vì chúng ta có thể nhân 25 với 2 hai lần để được 100 thì tất cả các phần tử đều giống nhau.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- lcm_arr:=LCM của tất cả các phần tử tính bằng nums
- đối với tôi trong phạm vi từ 0 đến kích thước là nums - 1, thực hiện
- val:=lcm_arr / nums [i]
- nếu kích thước của các số nguyên tố không phải là 0 và val không phải là 1, thì
- trong khi số nguyên tố val mod [0] là 0, hãy thực hiện
- val:=val / primes [j]
- trong khi số nguyên tố val mod [0] là 0, hãy thực hiện
- nếu val không giống 1, thì
- trả về Sai
- trả về True
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
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))
Đầu vào
[25, 100], [2, 5]
Đầu ra
True