কম্পিউটার

একটি অ্যারের উপাদান যা C++ এ অন্য অ্যারের কোনো উপাদান দ্বারা বিভাজ্য নয়


এই সমস্যায়, আমাদের দুটি অ্যারে দেওয়া হয়েছে arr1[] এবং arr2[]। আমাদের কাজ হল একটি অ্যারের এলিমেন্ট খুঁজে বের করার জন্য একটি প্রোগ্রাম তৈরি করা যা অন্য অ্যারের কোনো উপাদান দ্বারা বিভাজ্য নয়।

সমস্যা বর্ণনা: এখানে, আমাদের arr1 থেকে এমন সব উপাদান খুঁজে বের করতে হবে যেগুলো arr2-এর কোনো উপাদান দ্বারা বিভাজ্য নয়।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট: arr1[] ={17, 15, 5, 12, 8} arr2[] ={5, 4}

আউটপুট: 17

ব্যাখ্যা -

arr1 এর উপাদান এবং তাদের বিভাজক উপাদান,

17 -> কোন উপাদান এটিকে ভাগ করতে পারে না।
15 -> 5 উপাদানটিকে ভাগ করে।
5 -> 5 উপাদানটিকে ভাগ করে।

12 -> 4 উপাদানটিকে ভাগ করে।

8 -> 4 উপাদানটিকে ভাগ করে।

সমাধান পদ্ধতি -

সমস্যা সমাধানের জন্য একটি সহজ এবং সরল পদ্ধতি হল সরাসরি পদ্ধতি ব্যবহার করে। আমরা arr1 এর মাধ্যমে লুপ করব এবং arr1 এর প্রতিটি উপাদানের জন্য, আমরা পরীক্ষা করব যে arr2-এর কোন উপাদানটি এলিমেন্টকে ভাগ করেছে কিনা। যদি কোন উপাদান এটিকে ভাগ না করে তবে উপাদানটি প্রিন্ট করুন।

অ্যালগরিদম −

ধাপ 1: arr1, i -> 0 থেকে n-1 এর জন্য লুপ।

ধাপ 2.1: প্রতিটি arr1[i], loop arr2, j -> 0 থেকে n-1 এর জন্য।

ধাপ 2.2.1 : arr1[i] % arr2[j] ==0 হলে, পতাকা =-1 চালিয়ে যান।

ধাপ 2.3: যদি পতাকা!=-1, প্রিন্ট arr1[i]।

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include<iostream>
using namespace std;

void findEleNotDivisbleByArray(int arr1[], int arr2[], int arr1Size, int arr2Size) {
   
   int flag = 0;
   for (int i = 0; i < arr1Size; i++) {
      flag = 0;
      for (int j = 0; j < arr2Size; j++){
         
         if( arr1[i] % arr2[j] == 0 ) {
            flag = -1;   
            break;
         }
      }
      if ( flag == 0 )
            cout<<arr1[i]<<"\t";
   }
}

int main()
{
   int arr1[] = {17, 15, 5, 12, 23, 8};
   int arr2[] = {5, 4};
   int arr1Size = sizeof(arr1)/sizeof(arr1[0]);
   int arr2Size = sizeof(arr2)/sizeof(arr2[0]);
   cout<<"Elements of an array that are not divisible by any element of another array are ";
   findEleNotDivisbleByArray(arr1, arr2, arr1Size, arr2Size);
   return 0;
}

আউটপুট −

Elements of an array that are not divisible by any element of another array are 17 23

এই সমাধান বৈধ কিন্তু কার্যকরী নয়। সুতরাং, আসুন সমস্যার একটি কার্যকর সমাধান দেখি,

এই পদ্ধতিতে, আমরা arr1 এর উপাদানগুলির একটি অ্যারে isDivisible[] তৈরি করব। arr2-এর সমস্ত উপাদানের জন্য, arr1-এর বৃহত্তম উপাদান পর্যন্ত তাদের সমস্ত গুণিতক চিহ্নিত করুন। এবং isDisible অ্যারেতে মিথ্যা চিহ্নিত সমস্ত উপাদান প্রিন্ট করুন।

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include<iostream>
using namespace std;

void findEleNotDivisbleByArray(int arr1[], int arr2[], int arr1Size, int arr2Size) {
   
   int maxEle = 0;
   for (int i = 0; i < arr1Size; i++)
      if (arr1[i] > maxEle)
         maxEle = arr1[i];

   int mark[maxEle];
   for (int i = 0; i < arr2Size; i++)
      for (int j = arr2[i]; j <= maxEle; j += arr2[i])
         mark[j] = 1;
   for (int i = 0; i < arr1Size; i++)
      if ( mark[arr1[i]] != 1)
         cout << arr1[i] << endl;
}

int main()
{
   int arr1[] = {17, 15, 5, 12, 8};
   int arr2[] = {5, 4};
   int arr1Size = sizeof(arr1)/sizeof(arr1[0]);
   int arr2Size = sizeof(arr2)/sizeof(arr2[0]);
   cout<<"Elements of an array that are not divisible by any element of another array are ";
   findEleNotDivisbleByArray(arr1, arr2, arr1Size, arr2Size);
   return 0;
}

আউটপুট −

Elements of an array that are not divisible by any element of another array are 17

  1. বৃত্তাকার অ্যারেতে সর্বাধিক যোগফল যাতে C++ এ দুটি উপাদান সংলগ্ন থাকে না

  2. একটি প্রদত্ত অ্যারেতে সদৃশগুলি সন্ধান করুন যখন উপাদানগুলি C++ এর একটি পরিসরে সীমাবদ্ধ থাকে না

  3. এমন উপাদানগুলি খুঁজুন যা প্রথম অ্যারেতে উপস্থিত রয়েছে এবং C++ এ দ্বিতীয়টিতে নেই

  4. একটি অ্যারে উপাদান খুঁজুন যাতে সমস্ত উপাদান এটি দ্বারা c++ ব্যবহার করে বিভাজ্য হয়