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

C++-এ একটি সংখ্যা ব্লিক (Bleak) কিনা চেক করা

এখানে আমরা দেখব একটি সংখ্যা ব্লিক (Bleak) কিনা। একটি সংখ্যাকে ব্লিক বলা হয় যদি সেটিকে কোনো পজিটিভ সংখ্যা x এবং x-এর সেট বিট কাউন্টের যোগফল হিসেবে প্রকাশ করা না যায়। অর্থাৎ x + set_bit_count(x) ≠ n, যেকোনো নন-নেগেটিভ x-এর জন্য।

কনসেপ্টটি খুব সহজ: যদি সেট বিট কাউন্ট + সংখ্যা সংখ্যাটির সমান না হয়, তবে সেটি ব্লিক, অন্যথায় নয়।

উদাহরণ কোড

#include <iostream>
using namespace std;

int set_bit_count(int x) {
    unsigned int bit_count = 0;
    while (x != 0) {
        x &= (x - 1);
        bit_count++;
    }
    return bit_count;
}

bool isBleakNumber(int n) {
    for (int i = 1; i < n; i++)
        if (i + set_bit_count(i) == n)
            return false;
    return true;
}

int main() {
    isBleakNumber(3) ? cout << "Yes\n" : cout << "No\n";
    isBleakNumber(4) ? cout << "Yes\n" : cout << "No\n";
    return 0;
}

আউটপুট

No
Yes
  1. C++ প্রোগ্রাম: সংখ্যা অন্য একটি সংখ্যার পাওয়ার কিনা চেক করা

  2. C++ প্রোগ্রাম: বড় সংখ্যা ২০ দিয়ে বিভাজ্য কিনা চেক (স্ট্রিং ইনপুট)

  3. C++-এ N পেন্টাগোনাল নাম্বার কিনা তা যাচাই করার প্রোগ্রাম

  4. আর্মস্ট্রং নম্বর (Armstrong Number) চেক করার C++ প্রোগ্রাম