কম্পিউটার

পাইথন ব্যবহার করে n-এর kth ফ্যাক্টর বের করার জন্য প্রোগ্রাম


ধরুন আমাদের দুটি ধনাত্মক মান n এবং k আছে। এখন বিবেচনা করুন আমাদের কাছে n-এর সমস্ত গুণনীয়কের একটি তালিকা রয়েছে যা আরোহী ক্রমে সাজানো হয়েছে, আমাদের এই তালিকায় kth ফ্যাক্টর খুঁজে বের করতে হবে। k ফ্যাক্টর কম হলে -1 ফেরত দিন।

সুতরাং, যদি ইনপুটটি n =28 k =4 এর মত হয়, তাহলে আউটপুট হবে 7 কারণ, 28 এর ফ্যাক্টর হল [1,2,4,7,14,28], চতুর্থটি হল 7।

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

  • k যদি 1 এর মত হয়, তাহলে

    • রিটার্ন 1

  • cand :=একটি উপাদান সহ একটি তালিকা [1]

  • i এর জন্য 2 থেকে 1 + ফ্লোর এর (n এর বর্গমূল), করুন

    • যদি n mod i 0 এর মত হয়, তাহলে

      • ক্যান্ডের শেষে i ঢোকান

    • m :=ক্যান্ডের আকার

  • যদি k> 2*m বা (k একই হয় 2*m এবং n =(ক্যান্ডের শেষ উপাদান)^2)

    • রিটার্ন -1

  • যদি k <=m, তাহলে

    • রিটার্ন ক্যান্ড[k-1]

  • ফ্যাক্টর :=cand[2*m - k]

  • n/ফ্যাক্টর

    এর রিটার্ন ভাগফল

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

উদাহরণ

from math import floor
def solve(n ,k):
   if k == 1:
      return 1
   cand = [1]
   for i in range(2, 1+floor(pow(n, 0.5))):
      if n%i == 0:
         cand.append(i)
      m = len(cand)
      if k > 2*m or (k == 2*m and n == cand[-1]**2):
         return -1
      if k <= m:
         return cand[k-1]
      factor = cand[2*m - k]
      return n//factor
n = 28
k = 4
print(solve(n ,k))

ইনপুট

28, 4

আউটপুট

7

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

  2. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

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

  4. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম