কম্পিউটার

(a^b)%m খুঁজুন যেখানে C++ এ 'a' অনেক বড়


এই টিউটোরিয়ালে, আমরা সমীকরণটি সমাধান করতে যাচ্ছি (a b )%m যেখানে a একটি খুব বড় সংখ্যা।

সমীকরণ (a b )%m=(a%m)*(a%m)...b_times আমরা a%m এর মান বের করে এবং তারপর এটিকে b. গুণ করে সমস্যার সমাধান করতে পারি।

আসুন সমস্যা সমাধানের পদক্ষেপগুলি দেখি৷

  • সংখ্যাগুলি a, b, এবং m শুরু করুন।

  • a%m.

    খুঁজতে একটি ফাংশন লিখুন
    • 0 দিয়ে সংখ্যাটি শুরু করুন।

    • স্ট্রিং বিন্যাসে সংখ্যার উপর পুনরাবৃত্তি করুন।

    • সংখ্যায় শেষ সংখ্যা যোগ করুন।

    • নম্বর মডিউল দিয়ে নম্বর আপডেট করুন।

  • a%m.

    এর মান পান
  • একটি লুপ লিখুন যা b বার পুনরাবৃত্তি করে।

    • a%m কে গুন করুন এবং m দিয়ে ফলাফল মডিউল করুন।

  • ফলাফল প্রিন্ট করুন।

উদাহরণ

আসুন কোডটি দেখি।

#include<bits/stdc++.h>
using namespace std;
unsigned int aModm(string str, unsigned int mod) {
   unsigned int number = 0;
   for (unsigned int i = 0; i < str.length(); i++) {
      number = number * 10 + (str[i] - '0');
      number %= mod;
   }
   return number;
}
unsigned int aPowerBmodM(string &a, unsigned int b, unsigned int m) {
   unsigned int a_mod_m_result = aModm(a, m);
   unsigned int final_result = 1;
   for (unsigned int i = 0; i < b; i++) {
      final_result = (final_result * a_mod_m_result) % m;
   }
   return final_result;
}
int main() {
   string a = "123456789012345678901234567890123";
   unsigned int b = 3, m = 7;
   cout << aPowerBmodM(a, b, m) << endl;
   return 0;
}

আউটপুট

আপনি যদি উপরের প্রোগ্রামটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।

1

উপসংহার

টিউটোরিয়ালে আপনার কোন প্রশ্ন থাকলে মন্তব্য বিভাগে উল্লেখ করুন।


  1. C++ এ সর্বাধিক পণ্যের চতুর্গুণ সংখ্যা খুঁজুন

  2. C++ এ অ্যারেতে সবচেয়ে কাছের নম্বর খুঁজুন

  3. C++ এ d সংখ্যা আছে এমন সংখ্যাটি খুঁজুন

  4. C++ এ মূলদ সংখ্যার LCM খুঁজুন