কম্পিউটার টিউটোরিয়াল

সি++ প্রোগ্রাম: n কি k সংখ্যার গুণফল হিসেবে লেখা সম্ভব কিনা যাচাই


একটি সংখ্যা N এবং অন্য একটি সংখ্যা k দেওয়া থাকলে, N কি k সংখ্যার গুণফল হিসেবে প্রকাশ করা সম্ভব কিনা যাচাই করতে হবে। N = 54, k = 3 হলে [2, 3, 9] প্রিন্ট হবে, না হলে বোঝানো হবে।

সমাধান: N-এর সব প্রাইম ফ্যাক্টর (prime factor) বের করে ভেক্টরে রাখা। তারপর k সংখ্যক ১-র চেয়ে বড় সংখ্যা বের করতে ভেক্টরের সাইজ k-র চেয়ে বড় কিনা যাচাই। সাইজ কম হলে -1, অন্যথায় প্রথম k-1 ফ্যাক্টর প্রিন্ট এবং শেষ ফ্যাক্টর হবে বাকি সব সংখ্যার গুণফল।

উদাহরণ

#include<iostream> #include<vector> #include<cmath> using namespace std;    int getKFactors(int n, int k){    int i;    vector vec;    while(n % 2 == 0){       vec.push_back(2);       n = n/2; // ২ দিয়ে ভাগ করে n কমানো    }    for(i = 3; i <= sqrt(n); i=i+2){ // i ২ বাড়াতে অড্ড (odd) সংখ্যা পাওয়া       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 

আউটপুট

2, 3, 9

  1. C++-তে অ্যারেতে থাকা সব প্রাইম নম্বরের গুণফল বের করা

  2. C++ প্রোগ্রাম: অ্যারে উপাদানগুলোর গুণফলের প্রথম ডিজিট বের করা

  3. C++ প্রোগ্রাম: দুটি সংখ্যা বের করা যাদের যোগফল ও গুণফল N-র সমান

  4. দুই সংখ্যা গুণ করার C++ প্রোগ্রাম (অপারেটর দিয়ে এবং ছাড়া)