चुनौती
तो, उम, ऐसा लगता है कि, जबकि हमारे पास बहुत सारी चुनौतियां हैं जो वर्ग संख्या या अन्य आकृतियों की संख्या के साथ काम करती हैं, हमारे पास एक नहीं है जो बस पूछती है:
पूर्णांक या n(जहां n>=0) इनपुट के रूप में nएक सत्य मान देते हैं यदि एक पूर्ण वर्ग या एक गलत मान है तो नहीं।
नियम
- जब तक यह मानक I / O नियमों द्वारा अनुमत है, तब तक आप किसी भी उचित, सुविधाजनक साधन द्वारा इनपुट ले सकते हैं ।
- आपको उन इनपुटों को संभालने की आवश्यकता नहीं है जो आपकी चुनी हुई भाषा मूल रूप से संभाल सकती है और जो फ्लोटिंग पॉइंट अशुद्धि की ओर ले जाएगी।
- आउटपुट दो लगातार truthy / falsey मूल्यों (जैसे, से एक होना चाहिए
trueयाfalse,1या0) - truthy यदि इनपुट एक पूर्ण वर्ग है, falsey अगर यह नहीं है। - यह कोड-गोल्फ है इसलिए सबसे कम बाइट गिनती जीतती है।
परीक्षण के मामलों
Input: 0
Output: true
Input: 1
Output: true
Input: 64
Output: true
Input: 88
Output: false
Input: 2147483647
Output: false
2**54-2अभी भी बड़ा है एक डबल सुरक्षित रूप से संभाल सकता है, कम से कम जावास्क्रिप्ट में18014398509481982 > 9007199254740991
2**54-2एक JS कंसोल में टाइप करें, और जो आपको मिलता है उसकी तुलना करें 18014398509481982(सटीक मान)। जेएस सटीक मूल्य का उत्पादन करता है, इसलिए 2**54-2एक डबल के साथ प्रतिनिधित्व करने योग्य है। यदि वह अभी भी आपको मना नहीं करता है, तो बाइनरी डेटा लें 0100001101001111111111111111111111111111111111111111111111111111, इसे IEEE-754 डबल-सटीक फ़्लोट के रूप में व्याख्या करें, और देखें कि आपको क्या मूल्य मिलता है।
18014398509481982(2**54-2) है, जो है एक डबल के साथ प्रदर्शनीय, और जवाब है कि उपयोग का कारण बनता हैsqrtविफल।