Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

एक सरणी तत्व की जाँच करें जो C++ में अन्य सभी के साथ सहप्राइम है

मान लीजिए कि हमारे पास सकारात्मक पूर्णांकों की एक सरणी A[] है, जहां 2 <=A[i] <=106. i के सभी संभावित मानों के लिए। कार्य यह जांचना है कि सरणी में कम से कम तत्व मौजूद है या नहीं, जो सरणी के अन्य सभी तत्वों के साथ कोप्राइम जोड़ी बनाता है। सरणी {2, 8, 4, 10, 6, 7} पर विचार करें। यहाँ 7 सरणी में अन्य सभी तत्वों के साथ सहप्राइम है।

इस समस्या को हल करने के लिए एक कुशल तरीका यह है कि, हमें दिए गए सरणी में पूर्णांकों के सभी अभाज्य गुणनखंड उत्पन्न करने होंगे, यदि तत्व में अन्य तत्वों के साथ कोई सामान्य अभाज्य गुणनखंड नहीं है, तो यह हमेशा अन्य तत्वों के साथ कोप्राइम युग्म बनाता है।

उदाहरण

#include <iostream>
#define MAX 1000001
using namespace std;
int smallPrimeFactor[MAX];
// Hash to store prime factors count
int hash1[MAX] = { 0 };
void getSmallestPrimeFactor() {
   smallPrimeFactor[1] = 1;
   for (int i = 2; i < MAX; i++)
      smallPrimeFactor[i] = i;
   for (int i = 4; i < MAX; i += 2)
      smallPrimeFactor[i] = 2;
   for (int i = 3; i * i < MAX; i++) {
      if (smallPrimeFactor[i] == i) {
         for (int j = i * i; j < MAX; j += i)
            if (smallPrimeFactor[j] == j)
               smallPrimeFactor[j] = i;
      }
   }
}
void factorizationResult(int x) {
   int temp;
   while (x != 1) {
      temp = smallPrimeFactor[x];
      if (x % temp == 0) {
         hash1[smallPrimeFactor[x]]++;
         x = x / smallPrimeFactor[x];
      }
      while (x % temp == 0)
      x = x / temp;
   }
}
bool hasCommonFactors(int x) {
   int temp;
   while (x != 1) {
      temp = smallPrimeFactor[x];
      if (x % temp == 0 && hash1[temp] > 1)
      return false;
      while (x % temp == 0)
      x = x / temp;
   }
   return true;
}
bool hasValueToFormCoPrime(int arr[], int n) {
   getSmallestPrimeFactor();
   for (int i = 0; i < n; i++)
   factorizationResult(arr[i]);
   for (int i = 0; i < n; i++)
   if (hasCommonFactors(arr[i]))
   return true;
   return false;
}
int main() {
   int arr[] = { 2, 8, 4, 10, 6, 7 };
   int n = sizeof(arr) / sizeof(arr[0]);
   if (hasValueToFormCoPrime(arr, n))
      cout << "There is a value, that can form Co-prime pairs with all other elements";
   else
      cout << "There is no value, that can form Co-prime pairs with all other elements";
}

आउटपुट

There is a value, that can form Co-prime pairs with all other elements

  1. एक सरणी तत्व खोजें जैसे कि सभी तत्व इसके द्वारा c++ . का उपयोग करके विभाज्य हैं

    विचार करें कि हमारे पास कुछ तत्वों के साथ एक सरणी ए है। हमें A से एक अवयव इस प्रकार ज्ञात करना है कि सभी तत्वों को इससे विभाजित किया जा सके। मान लीजिए कि ए [15, 21, 69, 33, 3, 72, 81] जैसा है, तो तत्व 3 होगा, क्योंकि सभी संख्याएं 3 से विभाज्य हो सकती हैं। इस समस्या को हल करने के लिए, हम ए में सबसे

  1. C++ में क्रमबद्ध सरणी में अधिकांश तत्व की जाँच करें

    7/2 देख सकते हैं। हम सरणी में x की घटनाओं की गणना कर सकते हैं, और यदि संख्या n/2 से अधिक है, तो उत्तर सही होगा, अन्यथा गलत। उदाहरण #include <iostream> #include <stack> using namespace std; bool isMajorityElement(int arr[], int n, int x){    int freq = 0;    for(int i

  1. सी ++ प्रोग्राम 'के' को खोजने के लिए ऐसा है कि प्रत्येक सरणी तत्व के साथ इसका मॉड्यूलस समान है

    इस लेख में, हम एक पूर्णांक k को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे, जैसे कि किसी दिए गए सरणी के प्रत्येक तत्व के साथ इसका मापांक समान हो। उदाहरण के लिए, मान लें कि हमें एक सरणी दी गई है, arr = {12, 22, 32} तब हमारे पास k =1, 2, 5, 10 का आउटपुट मान होता है। y) में दो मानों का मामला लें। तब ह