चुनौती
तो, उम, ऐसा लगता है कि, जबकि हमारे पास बहुत सारी चुनौतियां हैं जो वर्ग संख्या या अन्य आकृतियों की संख्या के साथ काम करती हैं, हमारे पास एक नहीं है जो बस पूछती है:
पूर्णांक या 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
विफल।