কম্পিউটার

x এর সর্বোচ্চ মান বের করুন যেমন n! C++ এ % (k^x) =0


ধরুন আমাদের দুটি পূর্ণসংখ্যা n এবং k আছে। আমাদের x এর সর্বোচ্চ মান বের করতে হবে, যেমন n! mod (k^x) =0। সুতরাং যখন n =5, এবং k =2, তখন আউটপুট হবে 3। n হিসাবে! =120, এখন x এর বিভিন্ন মানের জন্য, এটি হবে −

120 মোড 2^0 =0, 120 মোড 2^1 =0, 120 মোড 2^2 =0, 120 মোড 2^3 =0, 120 মোড 2^4 =8, 120 মোড 2^5 =24, 120 মোড 2^6 =56, 120 মোড 2^7 =120। x =3 এর সর্বাধিক মান হিসাবে ফলাফলটি 0, তাই আউটপুট 3।

এটি সমাধান করার জন্য, আমাদের এই পদক্ষেপগুলি অনুসরণ করতে হবে -

  • k এর বর্গমূল নিন, এবং এটিকে m এ সংরক্ষণ করুন
  • এর জন্য i :=2 থেকে m, নিম্নলিখিত ধাপগুলি করুন:
    • যখন i =m, তারপর i :=k সেট করুন
    • যদি k i দ্বারা বিভাজ্য হয়, তাহলে, k কে i দ্বারা ভাগ করুন
    • n এ একটি লুপ চালান এবং u নামক একটি চলকের ভাগফল যোগ করুন।
    • প্রতিটি লুপের পরে r-এর সর্বনিম্ন মান সংরক্ষণ করুন

উদাহরণ

#include <iostream>
#include <cmath>
using namespace std;
int calculateMaxX(int n, int k) {
   int result = n, v, u;
   int m = sqrt(k) + 1;
   for (int i = 2; i <= m && k > 1; i++) {
      if (i == m) {
         i = k;
      }
      for (u = v = 0; k % i == 0; v++) {
         k /= i;
      }
      if (v > 0) {
         int t = n;
         while (t > 0) {
            t /= i;
            u += t;
         }
         result = min(result, u / v);
      }
   }
   return result;
}
int main() {
   int n = 5;
   int k = 2;
   cout<<"Maximum value of x is: " << calculateMaxX(n, k);
}

আউটপুট

Maximum value of x is: 3

  1. একটি অ্যারেতে মৌলিক সংখ্যা K খুঁজুন যেমন (A[i] % K) C++-এ সর্বাধিক

  2. ন্যূনতম x খুঁজুন যেমন (x % k) * (x / k) ==n C++ এ

  3. একটি অ্যারেতে সমস্ত জোড়া (a, b) খুঁজুন যেমন একটি % b =k C++ এ

  4. যেকোন বীজগাণিতিক রাশির সর্বোচ্চ মান খুঁজে পেতে C++ প্রোগ্রাম