मान लीजिए कि हमारे पास सकारात्मक पूर्णांकों की संख्या नामक एक सरणी है। हमें अंकों के कुछ उपसमुच्चय का चयन करना है, फिर प्रत्येक तत्व को एक पूर्णांक से गुणा करना है और इन सभी संख्याओं को जोड़ना है। सरणी एक अच्छी सरणी होगी यदि हम किसी भी संभावित उपसमुच्चय और गुणक द्वारा सरणी से 1 का योग प्राप्त कर सकते हैं।
हमें यह जांचना होगा कि ऐरे अच्छा है या नहीं।
इसलिए, अगर इनपुट [12,23,7,5] जैसा है, तो आउटपुट ट्रू होगा, ऐसा इसलिए है क्योंकि अगर हम 5, 7 नंबर लेते हैं, तो 5*3 + 7*(-2) =1पी>
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
जी:=अंक[0]
-
इनिशियलाइज़ i :=1 के लिए, जब i <अंकों का आकार, अपडेट करें (i से 1 बढ़ाएँ), करें -
-
g :=gcd of g और nums[i]
-
-
जब g 1 हो तब सही लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
#include <bits/stdc++.h> using namespace std; class Solution { public: int gcd(int a, int b){ return !b ? a : gcd(b, a % b); } bool isGoodArray(vector<int>& nums){ int g = nums[0]; for (int i = 1; i < nums.size(); i++) g = gcd(g, nums[i]); return g == 1; } }; main(){ Solution ob; vector<int> v = {12,23,7,5}; cout << (ob.isGoodArray(v)); }
इनपुट
{12,23,7,5}
आउटपुट
1