परिचय और क्रेडिट
हम सभी जानते हैं और हमारे भयानक नियमों से प्यार करते हैं कि क्या कोई संख्या 11 या 3 से विभाजित होती है या नहीं, यह जांचने के लिए कि संख्या के अंकों के ऊपर कुछ चतुर राशि है। अब यह चुनौती एक नए स्तर पर ले जाती है, जिससे आपको अंकों के योग की गणना करने की आवश्यकता होती है और फिर जाँचता है कि क्या परिणाम एक पूर्ण पूर्णांक वर्ग है, जिसमें से कोई भी ऑपरेशन आमतौर पर बहुत कम नहीं किया जा सकता है। चूँकि यह गुण एक संख्या को देखते हुए भी बहुत कठिन होता है, हम चाहते हैं कि यह संख्याओं की संपूर्ण सूचियों के लिए किया जाए ताकि हम मानव कार्यों को बचा सकें। तो यह अब आपकी चुनौती है!
यह मेरे विश्वविद्यालय के कार्यात्मक प्रोग्रामिंग पाठ्यक्रम में एक असाइनमेंट था। यह असाइनमेंट अब बंद हो गया है और कक्षा में चर्चा की गई है और मेरे पास इसे पोस्ट करने के लिए मेरे प्रोफेसर की अनुमति है (मैंने विस्फोटक तरीके से पूछा)।
विशिष्टता
इनपुट
आपका इनपुट किसी भी मानक I / O प्रारूप में गैर-नकारात्मक पूर्णांकों की सूची है।
आप सूची प्रारूप का चयन कर सकते हैं क्योंकि आपकी भाषा को इसकी आवश्यकता है
उत्पादन
आउटपुट किसी भी मानक I / O प्रारूप में पूर्णांकों की एक सूची है।
क्या करें?
इनपुट सूची से प्रत्येक पूर्णांक को फ़िल्टर करें जिसके लिए अंकों का योग एक वर्ग (पूर्णांक का) नहीं है।
तत्वों का क्रम परिवर्तित नहीं किया जा सकता है, उदाहरण के लिए यदि आप प्राप्त [1,5,9]करते हैं तो आप वापस नहीं लौट सकते[9,1]
संभावित कोने के मामले
0 है एक गैर नकारात्मक पूर्णांक और इस तरह एक मान्य इनपुट और 0 भी एक मान्य पूर्णांक रूट, एक पूर्णांक वर्ग के रूप में 0 मायने रखता है जैसे है।
खाली सूची एक वैध इनपुट और आउटपुट भी है।
किसी जीत?
यह कोड-गोल्फ है इसलिए बाइट्स जीत में सबसे छोटा जवाब है!
मानक नियम निश्चित रूप से लागू होते हैं।
परीक्षण के मामलों
[1,4,9,16,25,1111] -> [1,4,9,1111]
[1431,2,0,22,999999999] -> [1431,0,22,999999999]
[22228,4,113125,22345] -> [22228,4,22345]
[] -> []
[421337,99,123456789,1133557799] -> []
चरण-दर-चरण उदाहरण
Example input: [1337,4444]
Handling first number:
Sum of the digits of 1337: 1+3+3+7=14
14 is not an integer square, thus will be dropped!
Handling second number:
Sum of the digits of 4444: 4+4+4+4=16
16 is an integer square because 4*4=16, can get into the output list!
Example output: [4444]