मान लीजिए कि हमारे पास दो सरणियाँ हैं, एक अंक है और दूसरा अभाज्य है। हमें यह जांचना है कि क्या अभाज्य सरणी से एक या अधिक अभाज्य संख्याओं को गुणा करके अंकों के सभी तत्वों को बराबर करना संभव है।
इसलिए, यदि इनपुट nums =[25, 100] primes =[2, 5] की तरह है, तो आउटपुट ट्रू होगा क्योंकि हम 100 प्राप्त करने के लिए 25 को 2 से गुणा कर सकते हैं तो सभी तत्व समान हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- lcm_arr :=अंकों में सभी तत्वों का LCM
- i के लिए 0 से लेकर अंकों के आकार -1 तक के लिए
- वैल:=lcm_arr/nums[i]
- यदि अभाज्य संख्याओं का आकार 0 नहीं है और वैल 1 नहीं है, तो
- जबकि वैल मॉड प्राइम्स[0] 0 है, करें
- वैल:=वैल/प्राइम्स[j]
- जबकि वैल मॉड प्राइम्स[0] 0 है, करें
- यदि वैल 1 के समान नहीं है, तो
- झूठी वापसी
- सही लौटें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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