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

C++-এ পাওয়ারফুল ইন্টিজার (Powerful Integers) খুঁজে বের করা


দো সংখ্যা a, b এবং লিমিট দেওয়া আছে। a^i + b^j ফর্মের সব সংখ্যা [a, limit] রেঞ্জে খুঁজে বের করতে হবে (i,j ≥ 0)।

উদাহরণ

a=2, b=5, limit=10 → আউটপুট: 2, 3, 5, 6, 7, 9

  • 2⁰+5⁰=2, 2⁰+5¹=6
  • 2¹+5⁰=3, 2¹+5¹=7
  • 2²+5⁰=5, 2³+5⁰=9

অ্যালগরিদম

  • নেস্টেড লুপ: i=a^0, a^1... limit পর্যন্ত, j=b^0, b^1... limit পর্যন্ত।
  • i+j ≤ limit হলে সেটে ইনসার্ট (ডুপ্লিকেট এড়াতে set ব্যবহার)।
  • a=1 বা b=1 হলে ইনফিনিট লুপ এড়াতে ব্রেক করুন।

উদাহরণ কোড

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

void powerfulNum(int a, int b, int limit) {
    set<int> s;
    for (int i = 1; i <= limit; i *= a) {
        for (int j = 1; j <= limit; j *= b) {
            if (i + j <= limit) s.insert(i + j);
            else break;
            if (b == 1) break;
        }
        if (a == 1) break;
    }
    for (int x : s) cout << x << " ";
}

int main() {
    powerfulNum(2, 5, 10);
    return 0;
}

আউটপুট

2 3 5 6 7 9

  1. C++-এ দেওয়া গুণফল দিয়ে N পূর্ণসংখ্যার সর্বোচ্চ GCD

  2. C++-এ স্ট্রিং থেকে সব ইন্টিজার এক্সট্র্যাক্ট করা

  3. C++-এ নম্বর স্ট্রিংকে ইন্টিজারে কনভার্ট করা

  4. পাইথনে পাওয়ারফুল ইন্টিজার