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

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


এই আর্টিকেলে আমরা মডুলার সমীকরণের সমাধান সম্পর্কে সবকিছু ব্যাখ্যা করব এবং মডুলার সমীকরণের সমাধান সংখ্যা বের করার প্রোগ্রাম লিখব। এখানে একটি মৌলিক উদাহরণ:

ইনপুট : X = 30 Y = 2
আউটপুট : 4, 7, 14, 28
ব্যাখ্যা : 30 mod 4 = 2 (Y-এর সমান), 30 mod 7 = 2, 30 mod 14 = 2, 30 mod 28 = 2

উপরের উদাহরণে দেখা যায়, প্রতিটি পূর্ণসংখ্যা যা X-কে ভাগ করলে ভাগশেষ Y দেয়, সেটি সমাধান। এই উদাহরণে 30 কে 4, 7, 14, 28 দিয়ে ভাগ করলে ভাগশেষ 2 আসে যা 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++) {         // যদি N, i দিয়ে বিভাজ্য হয়         if ((N % i) == 0) {             // 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; }

আউটপুট

যদি ০ ইনপুট দিই, তবে প্রোগ্রাম নিচের আউটপুট দেবে:

X can take Infinitely many values greater than 0

অন্য সংখ্যা ইনপুট দিলে (এখানে ৫ ইনপুট দিয়েছি):

Number of solution = 2

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

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

main() ফাংশন

main ফাংশনে X এবং Y-এর মান ইনপুট নেওয়া হয়েছে এবং numberofsolutions() ফাংশন কল করে সম্ভাব্য সমাধান সংখ্যা বের করা হয়েছে।

Numberofsolutions() ফাংশন

এই ফাংশনটি চেক করে X এবং Y শর্ত পূরণ করে কিনা, অর্থাৎ X, Y-এর চেয়ে বড় হতে হবে কারণ ভাজ্য ভাজক থেকে বড় হতে হবে। এই ফাংশন numberofdivisor() ফাংশন কল করে X-এর ভাজক সংখ্যা বের করে যা ভাগশেষ Y দেয়।

Numberofdivisor() ফাংশন

এই ফাংশনটি X - Y-এর ভাজক সংখ্যা বের করে 1 থেকে (X - Y)/2 পর্যন্ত লুপ চালিয়ে প্রতিটি পূর্ণসংখ্যা চেক করে যে সেটি ভাগ করে কিনা, এবং সেই পূর্ণসংখ্যা X-কে সঠিকভাবে ভাগ করে না।

উপসংহার

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

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


  1. C++ ব্যবহার করে পেন্টাগোনাল পিরামিডাল সংখ্যা নির্ণয় করুন

  2. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

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

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