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

C/C++ প্রোগ্রামে মডুলার ইকোয়েশনের সমাধানের সংখ্যা বের করা


ভূমিকা

দুটি সংখ্যা A এবং B দেওয়া থাকলে, (A mod X) = B সমীকরণ সিদ্ধ করে এমন X এর সম্ভাব্য মানগুলো গণনা করতে হবে।

উদাহরণ

A=26, B=2 → X ∈ {3,4,6,8,12,24} → মোট ৬টি সমাধান

এলগরিদম

possibleWayCount(A, B)
শুরু
  যদি A == B: অসংখ্য সমাধান (X > A)
  যদি A < B: ০ সমাধান
  অন্যথায়: N = A - B-এর ডিভাইজারগুলো বের করুন যা B-র চেয়ে বড়
শেষ

C++ প্রোগ্রাম উদাহরণ

#include 
#include 
using namespace std;

int findDivisors(int A, int B) {
    int N = A - B, count = 0;
    for (int i = 1; i*i <= N; i++) {
        if (N % i == 0) {
            if (i > B) count++;
            if (N/i != i && N/i > B) count++;
        }
    }
    return count;
}

int possibleWayCount(int A, int B) {
    if (A == B) return -1; // infinite
    if (A < B) return 0;
    return findDivisors(A, B);
}

int main() {
    int A = 26, B = 2;
    int sol = possibleWayCount(A, B);
    if (sol == -1) cout << "Infinite solutions";
    else cout << "X can take " << sol << " values";
    return 0;
}

আউটপুট

X can take 6 values
  1. C++-তে সেন্টার্ড ননাগোনাল (Centered Nonagonal) সংখ্যা বের করা

  2. C++ প্রোগ্রাম: হেক্সাডেসিমেল থেকে ডেসিমেল কনভার্সন

  3. C++-এ ডেসিমেল থেকে হেক্সাডেসিমেল কনভার্সন প্রোগ্রাম

  4. C++-এ ডেসিমেল থেকে বাইনারি কনভার্সন প্রোগ্রাম