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

সি++-এ K-রফ (k-Rough) বা K-জ্যাগড (k-Jagged) সংখ্যা যাচাই করা

এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখব যা যাচাই করবে প্রদত্ত সংখ্যাটি k-রফ (k-rough) বা k-জ্যাগড (k-jagged) সংখ্যা কিনা।

যে সংখ্যার সবচেয়ে ছোট মৌলিক গুণনীয়ক (prime factor) প্রদত্ত k-এর চেয়ে বড় বা সমান, সেটিকে k-রফ বা k-জ্যাগড সংখ্যা বলা হয়।

সমস্যা সমাধানের ধাপসমূহ

  • সংখ্যা n এবং k ইনিশিয়ালাইজ করুন।
  • n-এর সব মৌলিক গুণনীয়ক বের করে একটি ভেক্টরে সংরক্ষণ করুন।
  • ভেক্টরের প্রথম উপাদানটি k-এর সাথে তুলনা করে n k-রফ বা k-জ্যাগড সংখ্যা কিনা তা যাচাই করুন।

উদাহরণ কোড

#include <bits/stdc++.h>
using namespace std;

bool isPrime(int n) {
    for (int i = 2; i * i <= n; i++) {
        if (n % i == 0) {
            return false;
        }
    }
    return true;
}

vector<int> getPrimes(int n) {
    vector<int> primes;
    for (int i = 2; i < n; i++) {
        if (n % i == 0 && isPrime(i)) {
            primes.push_back(i);
        }
    }
    return primes;
}

bool isRoughNumber(int n, int k) {
    vector<int> primes = getPrimes(n);
    return primes[0] >= k;
}

int main() {
    int n = 75, k = 3;
    if (isRoughNumber(n, k)) {
        cout << n << " is a " << k << " rough number" << endl;
    } else {
        cout << n << " is not a " << k << " rough number" << endl;
    }
    return 0;
}

আউটপুট

উপরের প্রোগ্রামটি রান করলে নিচের ফলাফল পাওয়া যাবে:

75 is a 3 rough number

নিষ্কর্ষ

আপনি সব মৌলিক সংখ্যাগুলো ভেক্টরে সংরক্ষণ না করে সরাসরি n-এর প্রথম মৌলিক গুণনীয়ক বের করে তা k-এর সাথে তুলনা করতে পারেন। এটি কম স্পেস ও টাইম কমপ্লেক্সিটিতে কাজ করবে। উপরের মতোদের মতোই একই লজিক ব্যবহার করে আরও অপ্টিমাইজড কোড লিখতে পারেন।

এই টিউটোরিয়াল সম্পর্কে আপনার যেকোনো প্রশ্ন থাকলে কমেন্ট সেকশনে জানাতে পারেন।

  1. C++-এ ন্যূনতম পৃষ্ঠা বণ্টন (Allocate Minimum Pages)

  2. C++ প্রোগ্রাম: মিস্টেরি নাম্বার (Mystery Number) চেক করা

  3. C++-এ ভেরিয়েবল সংখ্যক আর্গুমেন্ট (Variable Arguments)

  4. C++-এ CHAR_BIT