কম্পিউটার

C++ এ এর ​​ভাজক থেকে সংখ্যা খুঁজুন


এই সমস্যায়, আমাদেরকে N পূর্ণসংখ্যা নিয়ে গঠিত একটি অ্যারে ভাজক [] দেওয়া হয়েছে যা একটি সংখ্যার ভাজক। আমাদের কাজ হল এর ভাজক থেকে সংখ্যা বের করা।

ভাজক অ্যারে 1 এবং সংখ্যা অন্তর্ভুক্ত করে না।

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

ইনপুট

divisors[] = {3, 25, 5, 15}

আউটপুট

75

ব্যাখ্যা

The number 75 has divisors {3, 25, 5, 15}

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

সমস্যা সমাধানের জন্য, সংখ্যাটির ক্ষুদ্রতম এবং বৃহত্তম ভাজক ব্যবহার করে আমাদের সংখ্যাটি বের করতে হবে।

Num = smallest * largest

এর জন্য, আমাদের অ্যারে ভাজকগুলিকে সাজাতে হবে[] এবং তারপর অ্যারের 1ম এবং শেষ সূচকে উপাদানগুলির গুণফল খুঁজে বের করতে হবে৷

সংখ্যা সংখ্যার জন্য, সংখ্যার সমস্ত গুণনীয়ক খুঁজুন। এবং পরীক্ষা করুন সংখ্যার ভাজকগুলি ভাজক অ্যারের মতোই। যদি হ্যাঁ, নম্বর ফেরত দিন। অন্যথায়, রিটার্ন -1, সংখ্যা নির্দেশ করে খুঁজে পাওয়া যাবে না।

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

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int findNumberFromDiv(int divisors[], int n){
   sort(divisors, divisors + n);
   int num = divisors[0] * divisors[n - 1];
   int numDiv[2*n];
   int count = 0;
   for (int i = 2; i * i <= num; i++){
      if (num % i == 0){
         numDiv[count] = i;
         count ++ ;
         numDiv[count] = num/i;
         count++;
      }
   }
   sort(numDiv, numDiv + count);
   if (count != n)
      return -1;
   else{
      for (int i = 0; i < count; i++) {
         if (divisors[i] != numDiv[i])
            return -1;
      }
   }
   return num;
}
int main(){
   int divisors[] = { 3, 25, 5, 15 };
   int n = sizeof(divisors) / sizeof(divisors[0]);
   cout<<"The number is "<<findNumberFromDiv(divisors,n);
   return 0;
}

আউটপুট

The number is 75

  1. C++ এ [1, n] পরিসরের সমস্ত সংখ্যার ভাজকের সংখ্যা নির্ণয় কর

  2. C++ ব্যবহার করে Pell নম্বর খুঁজুন

  3. C++ ব্যবহার করে n =x + n x এর সমাধানের সংখ্যা নির্ণয় করুন

  4. C++ ব্যবহার করে প্রদত্ত বিন্দু থেকে সম্ভাব্য চতুর্ভুজের সংখ্যা নির্ণয় করুন