एक पूर्णांक को देखते हुए , आपको न्यूनतम संख्या में बिट्स को ढूंढना होगा जो इसे वर्ग संख्या में बदलने के लिए में उल्टा होना चाहिए । आपको केवल सबसे महत्वपूर्ण एक के नीचे बिट्स को पलटने की अनुमति है ।
उदाहरण
- पहले से ही एक वर्ग संख्या ( ) है, इसलिए अपेक्षित आउटपुट ।
- को 1 बिट: ( ) में बदलकर एक वर्ग संख्या में बदल दिया जा सकता है , इसलिए अपेक्षित आउटपुट 1 है ।
- को एक एकल बिट ( , , और 30 होने के संभावित परिणाम) द्वारा एक वर्ग संख्या में नहीं बदला जा सकता है , लेकिन इसे 2 बिट्स में बदलकर किया जा सकता है: 10110 \ rightarrow 10 \ color {लाल} 0 रंग {लाल} 00 ( ), इसलिए अपेक्षित आउटपुट ।
नियम
- यह ठीक है यदि आपका कोड बहुत धीमा है या बड़े परीक्षण-मामलों के लिए कोई त्रुटि देता है, लेकिन इसे कम से कम 1 मिनट में 3 <N <10000 का समर्थन करना चाहिए ।
- यह कोड-गोल्फ है !
परीक्षण के मामलों
Input | Output
----------+--------
4 | 0
22 | 2
24 | 1
30 | 3
94 | 4
831 | 5
832 | 1
1055 | 4
6495 | 6
9999 | 4
40063 | 6
247614 | 7 (smallest N for which the answer is 7)
1049310 | 7 (clear them all!)
7361278 | 8 (smallest N for which the answer is 8)
100048606 | 8 (a bigger "8")
या अनुकूल प्रारूप में कॉपी / पेस्ट करें:
[4,22,24,30,94,831,832,1055,6495,9999,40063,247614,1049310,7361278,100048606]
100048606
टीआईओ के लिए निष्पादित नहीं करते हैं , क्या यह एक समस्या है?