কম্পিউটার

নম্বর পরীক্ষা করার প্রোগ্রামটি পাইথনে sqrt ফাংশন ছাড়াই নিখুঁত বর্গ বা নয়


ধরুন আমাদের একটি সংখ্যা n আছে, আমাদের পরীক্ষা করতে হবে n একটি নিখুঁত বর্গ সংখ্যা কি না। একটি নিখুঁত বর্গ সংখ্যা k কে কিছু পূর্ণসংখ্যা a এর জন্য k =a * a হিসাবে উপস্থাপন করা যেতে পারে। আমাদের বিল্ট-ইন বর্গমূল ফাংশন ব্যবহার না করেই এটি সমাধান করতে হবে।

সুতরাং, যদি ইনপুটটি n =121 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ 121 =11*11।

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

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

    • রিটার্ন ট্রু

  • শুরু :=2

  • stop :=n / 2 এর ফ্লোর

  • শুরু করার সময় <=থামুন, করুন

    • temp :=শুরু থেকে স্টপ পর্যন্ত সমস্ত সংখ্যার একটি তালিকা

    • k :=তাপমাত্রার মধ্যম উপাদান

    • k_squared :=k * k

    • k_squared যদি n এর মত হয়, তাহলে

      • রিটার্ন ট্রু

    • যদি k_squared> n হয়, তাহলে

      • শুরু :=তাপমাত্রা[0]

      • থামুন :=k - 1

    • অন্যথায়,

      • শুরু :=k + 1

      • স্টপ :=তাপমাত্রার শেষ উপাদান

  • রিটার্ন ফলস

উদাহরণ

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

def solve(n):
   if n == 0 or n == 1:
      return True
   start = 2
   stop = n // 2
   while start <= stop:
      temp = range(start, stop + 1)

   k = temp[len(temp) // 2]
   k_squared = k * k 

   if k_squared == n:
      return True

   if k_squared > n:
      start = temp[0]
      stop = k - 1
   else:
      start = k + 1
      stop = temp[-1]

   return False

n = 121
print(solve(n))

ইনপুট

121

আউটপুট

True

  1. প্রাইম নম্বর চেক করতে পাইথন প্রোগ্রাম

  2. আর্মস্ট্রং নম্বর চেক করতে পাইথন প্রোগ্রাম

  3. একটি সংখ্যা প্রাইম কি না তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  4. একটি স্ট্রিং প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম