ধরুন আমাদের একটি সংখ্যা 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