কম্পিউটার

পাইথনে একটি প্রদত্ত সমীকরণের মান খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের পাঁচটি পূর্ণসংখ্যা দেওয়া হল a, b, c, d, n। আমাদের খুঁজে বের করতে হবে ((ab)(cd)) mod n. আউটপুট মান একটি পূর্ণসংখ্যা সংখ্যা।

সুতরাং, যদি ইনপুট হয় a =2, b =3, c =2, d =4, n =10, তাহলে আউটপুট হবে 6।

2^3 = 8
2^4 = 16
8^16 = 281474976710656
281474976710656 mod 10 = 6

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

  • একটি ফাংশন সাহায্যকারী() সংজ্ঞায়িত করুন। এটি n
      লাগবে
    • p :=n
    • i :=2
    • যখন i * i <=n, do
      • যদি n mod i 0 এর মত হয়, তাহলে
        • p :=p - (p / i) এর ফ্লোর মান
      • যদিও n mod i 0 এর মত, do
        • n :=(n / i) এর ফ্লোর মান
      • যদি আমি 2 এর মত না হয়, তাহলে
        • i :=i + 2
      • অন্যথায়,
        • i :=i + 1
    • যদি n> 1 হয়, তাহলে
      • p :=p - (p / n) এর ফ্লোর মান
    • রিটার্ন p
  • যদি b 0 এর মত হয় বা (c 0 এর মত হয় এবং d 0 এর মত না হয়) তাহলে
    • রিটার্ন (a ^ 0) মোড n
  • যদি c 1 এর মত হয় বা d 0 এর মত হয়, তাহলে
    • রিটার্ন (a^b) মোড n
  • যদি a 0 এর মত হয় অথবা একটি mod n 0 এর মত হয়, তাহলে
    • রিটার্ন 0
  • যদি d 1 এর মত হয়, তাহলে
    • রিটার্ন (a^ b * c) mod n
  • p :=সাহায্যকারী(n)
  • e :=(c^d) mod p + p
  • রিটার্ন (((a^b) mod n) ^ e) mod n

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def helper(n):
   p = n
   i = 2
   while i * i <= n:
      if n % i == 0:
         p -= p // i
      while n % i == 0:
         n = n // i
      if i != 2:
         i += 2
      else:
         i += 1
   if n > 1:
      p -= p // n
   return p

def solve(a, b, c, d, n):
   if b == 0 or (c == 0 and d != 0):
      return pow(a, 0, n)
   if c == 1 or d == 0:
      return pow(a, b, n)
   if a == 0 or a % n == 0:
      return 0
   if d == 1:
      return pow(a, b * c, n)
   p = helper(n)
   e = pow(c, d, p) + p
   return pow(pow(a, b, n), e, n)

print(solve(2, 3, 2, 4, 10))

ইনপুট

2, 3, 2, 4, 10

আউটপুট

6

  1. পাইথনের একটি প্রদত্ত বাইনারি ট্রিতে একটি BST-এর বৃহত্তম সমষ্টির মান খুঁজে বের করার প্রোগ্রাম

  2. পাইথনের প্রত্যেকের দ্বারা গ্রাফটি অতিক্রম করা যায় কিনা তা খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে প্রদত্ত ম্যাট্রিক্সের স্থানান্তর খুঁজে বের করার জন্য প্রোগ্রাম

  4. পাইথনে প্রদত্ত সমীকরণ a + b =c থেকে অনুপস্থিত মানটি সন্ধান করুন