কম্পিউটার

একটি পূর্ণসংখ্যা X খুঁজুন যা C++-এ একটি অ্যারেতে ঠিক একটি উপাদান ছাড়া সবগুলোর ভাজক


ধারণা

প্রদত্ত পূর্ণসংখ্যার বিন্যাসের ক্ষেত্রে, আমাদের কাজ হল একটি পূর্ণসংখ্যা B নির্ধারণ করা যা প্রদত্ত অ্যারের ঠিক একটি উপাদান বাদে সকলের ভাজক।

এটা লক্ষ করা উচিত যে সমস্ত উপাদানের GCD 1 নয়।

ইনপুট

arr[] = {8, 16, 4, 24}

আউটপুট

8
8 is the divisor of all except 4.

ইনপুট

arr[] = {50, 15, 40, 41}

আউটপুট

5
5 is the divisor of all except 41.

পদ্ধতি

আমরা একটি প্রিফিক্স অ্যারে A তৈরি করি যাতে অবস্থান বা সূচক i 1 থেকে i পর্যন্ত সমস্ত উপাদানের GCD ধারণ করে। একইভাবে, একটি প্রত্যয় অ্যারে সি তৈরি করুন যাতে সূচক i তে i থেকে n-1 (শেষ সূচক) পর্যন্ত সমস্ত উপাদানের GCD থাকে। এটা দেখা গেছে যে A[i-1] এবং C[i+1]-এর GCD যদি i-এ উপাদানের ভাজক না হয়, তাহলে এটি প্রয়োজনীয় উত্তর।

উদাহরণ

// C++ program to find the divisor of all
// except for exactly one element in an array.
#include <bits/stdc++.h>
using namespace std;
// Shows function that returns the divisor of all
// except for exactly one element in an array.
int getDivisor1(int a1[], int n1){
   // If there's only one element in the array
   if (n1 == 1)
      return (a1[0] + 1);
   int A[n1], C[n1];
   // Now creating prefix array of GCD
   A[0] = a1[0];
   for (int i = 1; i < n1; i++)
      A[i] = __gcd(a1[i], A[i - 1]);
   // Now creating suffix array of GCD
   C[n1-1] = a1[n1-1];
   for (int i = n1 - 2; i >= 0; i--)
      C[i] = __gcd(A[i + 1], a1[i]);
   // Used to iterate through the array
   for (int i = 0; i <= n1; i++) {
      // Shows variable to store the divisor
   int cur1;
   // now getting the divisor
   if (i == 0)
      cur1 = C[i + 1];
   else if (i == n1 - 1)
      cur1 = A[i - 1];
   else
      cur1 = __gcd(A[i - 1], C[i + 1]);
   // Used to check if it is not a divisor of a[i]
   if (a1[i] % cur1 != 0)
      return cur1;
   }
   return 0;
}
// Driver code
int main(){
   int a1[] = { 50,15,40,41 };
   int n1 = sizeof(a1) / sizeof(a1[0]);
   cout << getDivisor1(a1, n1);
   return 0;
}

আউটপুট

5

  1. C++-এ অ্যারের প্রতিটি উপাদানের সারপাসার কাউন্ট খুঁজুন

  2. C++ এ একজনের পূর্ণসংখ্যার পরিপূরক খুঁজুন

  3. একটি অ্যারের সবচেয়ে বড় উপাদান খুঁজে পেতে C++ প্রোগ্রাম

  4. পাইথনের একটি অ্যারের মধ্যে ঠিক একটি উপাদান ব্যতীত একটি পূর্ণসংখ্যা X খুঁজুন যা সবগুলির ভাজক