কম্পিউটার

C++ ব্যবহার করে মডুলার সমীকরণের সমাধানের সংখ্যা খুঁজুন


এই নিবন্ধে আমরা মডুলার সমীকরণের সমাধান কী তা সম্পর্কে সবকিছু ব্যাখ্যা করব, এছাড়াও আমরা মডুলার সমীকরণের বেশ কয়েকটি সমাধান খুঁজে বের করার জন্য একটি প্রোগ্রাম লিখব। তাই এখানে মৌলিক উদাহরণ -

Input : X = 30 Y = 2
Output : 4, 7, 14, 28
Explanation : 30 mod 4 = 2 (equals Y),
   30 mod 7 = 2 (equals Y),
   30 mod 14 = 2 (equals Y),
   30 mod 28 = 2 (equals Y)
Input : X = 30 Y = 2
Output : 4, 7, 14, 28
Explanation : 30 mod 4 = 2 (equals Y),
   30 mod 7 = 2 (equals Y),
   30 mod 14 = 2 (equals Y),
   30 mod 28 = 2 (equals Y)

আমরা উপরের উদাহরণে দেখতে পাচ্ছি, প্রতিটি পূর্ণসংখ্যা হল সমাধান যা X ভাগ করলে অবশিষ্ট Y দেয়। এই উদাহরণে, 4, 7, 14, 28 দিয়ে 30 ভাগ করলে অবশিষ্ট দুটি পাওয়া যায়, যা Y এর সমান। আমরা সমাধান করব। এই পদ্ধতিতে মডুলাস সমীকরণ।

সমাধান খোঁজার পন্থা

আমরা একটি সাধারণ পদ্ধতি প্রয়োগ করতে পারি যা X কে 1 থেকে শুরু করে প্রতিটি পূর্ণসংখ্যা দিয়ে ভাগ করে এবং এটি অবশিষ্ট Y দেয় কিনা তা পরীক্ষা করে, অথবা আমরা প্রতিটি পূর্ণসংখ্যা এবং পূর্ণসংখ্যা দিয়ে (X - Y) ভাগ করতে পারি যা (X - Y) ভাগ করে কিন্তু X নয় সমাধান। . মডুলার সমীকরণের একটি ভিন্ন সমাধান খুঁজতে একটি C++ প্রোগ্রাম লিখি।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int numberofdivisor(int X, int Y){
    int N = (X - Y);
    int noOfDivisors = 1;
    for (int i = 1; i <= N/2; i++) {
        // if N is divisible by i
        if ((N % i) == 0) {
            // count if integer is greater than Y
            if (i > Y)
                noOfDivisors++;
        }
    }
    return noOfDivisors;
}
void numberofsolutions(int X, int Y){
    int noOfSolutions;
    if (X == Y)
        noOfSolutions = -1;
    if (X < Y)
        noOfSolutions = 0;
    if (X > Y)
        noOfSolutions = numberofdivisor(X, Y);
        if (noOfSolutions == -1) {
            cout << "X can take Infinitely many values"
            " greater than " << X << "\n";
    }
    else {
        cout << "Number of solution = " << noOfSolutions;
    }
}
// main function
int main(){
    int X,Y;
        cin >> X;
        cin >> Y;
    numberofsolutions(X, Y);
    return 0;
}

আউটপুট

যখন আমরা ইনপুট হিসাবে 0 লিখি, তখন প্রোগ্রামটি এইরকম একটি আউটপুট দেয় -

X can take Infinitely many values greater than 0

যখন আমরা অন্যান্য সংখ্যা রাখি, তখন উপরের প্রোগ্রামটি এইরকম আউটপুট দেখায় (এখানে আমরা একটি ইনপুট হিসাবে 5 দিয়েছি) -

Number of solution = 2

উপরের কোডের ব্যাখ্যা

এখন আমরা প্রতিটি ফাংশন ব্যাখ্যা করব যাতে আপনি প্রোগ্রামটি সহজে বুঝতে পারেন।

প্রধান() ফাংশন

মূল ফাংশনে আমরা ইনপুট হিসাবে X এবং Y এর মান নিচ্ছি এবং numberofsolution() ফাংশন কল করে সম্ভাব্য সমাধানের সংখ্যা খুঁজে বের করছি।

সংখ্যা সমাধান()ফাংশন

এই ফাংশন X এবং Y শর্ত পূরণ করে কিনা তা পরীক্ষা করে, যেখানে X Y-এর থেকে বড় হওয়া উচিত কারণ আমরা লভ্যাংশের চেয়ে বড় অবশিষ্টাংশ খুঁজে পাই না। এই ফাংশনটি অন্য একটি ফাংশন নম্বরকে ডিভাইজার() কল করে এবং X এর ভাজকের সংখ্যা নিয়ে আসে, যা অবশিষ্ট Y দেয়।

Numberofdivisor() ফাংশন

এই ফাংশনটি 1 থেকে (X - Y)/2 পর্যন্ত একটি লুপ চালানোর মাধ্যমে X - Y এর ভাজকের সংখ্যা খুঁজে বের করে এবং প্রতিটি পূর্ণসংখ্যা ভাগ করে কিনা তা পরীক্ষা করে এবং এই পূর্ণসংখ্যাটি X কে পুরোপুরি ভাগ করা উচিত নয়৷

উপসংহার

মডুলার সমীকরণের সমাধান হল পূর্ণসংখ্যা যা X কে ভাগ করে এবং অবশিষ্ট Y দেয়; আমরা বিভিন্ন উদাহরণ থেকে এটি বুঝতে পারি। সমীকরণের কিছু সমাধান থাকতে পারে, তাই আমরা একটি সহজ পদ্ধতি প্রয়োগ করে এই সমাধানগুলি খুঁজে পাই৷

আমরা একটি C++ প্রোগ্রাম লিখতে পারি যা মডুলার সমীকরণের সমাধান গণনা করবে। আমরা একই প্রোগ্রাম অন্যান্য ভাষায় লিখতে পারি যেমন সি, জাভা, পাইথন বা অন্য কোন প্রোগ্রামিং ভাষাতে। আশা করি কিভাবে মডুলার সমীকরণের বেশ কয়েকটি সমাধান খুঁজে বের করতে হয় সেই ধারণাটি বুঝতে আপনি এই নিবন্ধটি সহায়ক বলে মনে করেন।


  1. C++ ব্যবহার করে পঞ্চভুজ পিরামিডাল নম্বর খুঁজুন

  2. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  3. C++ ব্যবহার করে স্টপিং স্টেশনের সংখ্যা খুঁজুন

  4. C++ ব্যবহার করে একটি সেটে রিফ্লেক্সিভ রিলেশনের সংখ্যা খুঁজুন