मान लीजिए कि हमारे पास एक संख्या n है, हमें यह जांचना है कि n एक पूर्ण वर्ग संख्या है या नहीं। एक पूर्ण वर्ग संख्या k को कुछ पूर्णांक a के लिए k =a * a के रूप में दर्शाया जा सकता है। हमें इसे अंतर्निहित वर्गमूल फ़ंक्शन का उपयोग किए बिना हल करना होगा।
इसलिए, यदि इनपुट n =121 जैसा है, तो आउटपुट सही होगा क्योंकि 121 =11*11.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
अगर n 0 के समान है या n 1 के समान है, तो
-
सही लौटें
-
-
प्रारंभ:=2
-
स्टॉप :=n / 2 की मंजिल
-
प्रारंभ करते समय <=रुकें, करें
-
अस्थायी:=शुरू से अंत तक सभी नंबरों की सूची
-
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