কম্পিউটার

C++ এ k সংখ্যার গুণফল হিসেবে n লেখা যায় কিনা তা খুঁজুন


ধরুন আমাদের একটি সংখ্যা N আছে। আমাদের আরেকটি সংখ্যা k আছে। আমাদের পরীক্ষা করতে হবে যে সংখ্যাটি k সংখ্যা ব্যবহার করে উপস্থাপন করা যেতে পারে কি না। ধরুন একটি সংখ্যা 54, এবং k =3, তাহলে এটি [2, 3, 9] এর মতো সংখ্যাগুলি প্রিন্ট করবে, যদি এটি উপস্থাপন করা না যায় তবে সেটি প্রিন্ট করুন৷

এটি সমাধান করার জন্য, আমরা N এর সমস্ত মৌলিক গুণনীয়কগুলি খুঁজে বের করব এবং সেগুলিকে একটি ভেক্টরে সংরক্ষণ করব, তারপর 1-এর চেয়ে বড় k সংখ্যাগুলি খুঁজে বের করতে, আমরা ভেক্টরটির আকার k-এর চেয়ে বড় কি না তা পরীক্ষা করব। যদি আকার k-এর থেকে কম হয়, তাহলে -1 ফেরত দিন, অন্যথায় প্রথম k-1 ফ্যাক্টর প্রিন্ট করুন এবং শেষ ফ্যাক্টর হবে বাকি সমস্ত সংখ্যার গুণফল৷

উদাহরণ

#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
   int getKFactors(int n, int k){
   int i;
   vector<int> vec;
   while(n % 2 == 0){
      vec.push_back(2);
      n = n/2; //reduce n by dividing this by 2
   }
   for(i = 3; i <= sqrt(n); i=i+2){ //i will increase by 2, to get only odd numbers
      while(n % i == 0){
         n = n/i;
         vec.push_back(i);
      }
   }
   if(n > 2){
      vec.push_back(n);
   }
   if(vec.size() < k){
      cout << "Cannot be represented";
         return -1;
   }
   for (int i=0; i<k-1; i++)
   cout << vec[i] << ", ";
   int prod = 1;
   for (int i=k-1; i<vec.size(); i++)
   prod = prod*vec[i];
   cout << prod << endl;
}
int main() {
   int n = 54, k = 3;
   getKFactors(n, k);
}

আউটপুট

2, 3, 9

  1. C++ এ একটি অ্যারেতে সমস্ত মৌলিক সংখ্যার গুণফল

  2. সংখ্যার বিন্যাসের গুণফলের প্রথম সংখ্যা খুঁজে পেতে C++ প্রোগ্রাম

  3. C++ প্রোগ্রাম যোগফল এবং গুণফল উভয়ই N এর মতো একই সহ দুটি সংখ্যা খুঁজে বের করতে

  4. C++ দুইটি সংখ্যাকে গুণ করার জন্য প্রোগ্রাম