अधिकांश वर्ग संख्याओं में कम से कम 1 अलग-अलग वर्ग संख्या होती है, जिसके साथ उनकी लेवेन्सहाइट दूरी ठीक 1 होती है। किसी दिए गए वर्ग , प्रत्येक वर्ग जो इस स्थिति को पूरा करता है, उसे x का एक लेवेंसहाइट पड़ोसी कहा जाता है । उदाहरण के लिए, 36 16 के एक लेवेंसहाइट पड़ोसी है , क्योंकि केवल 1 संपादन ( 1 → 3 ) की आवश्यकता है। हालाँकि, 64 में 16 का लेवेन्सहाइट पड़ोसी नहीं है , क्योंकि इसके लिए न्यूनतम 2 संपादन की आवश्यकता होती है। जिन नंबरों में 0s ( 2025 → 025 ) प्रमुख हैं वे लेवेंसहाइट पड़ोसी नहीं हैं ।
आपका काम इनपुट और आउटपुट के रूप में एक वर्ग संख्या लेना है, किसी भी उचित प्रारूप में, इसकी पूरी सूची Levenshtein पड़ोसी। यदि आप चाहें, तो आप सूची में दोहराए गए पड़ोसियों को शामिल कर सकते हैं, लेकिन आप मूल इनपुट को शामिल नहीं कर सकते हैं, क्योंकि यह स्वयं का एक लेवेंसहाइट पड़ोसी नहीं है।
किसी भी उचित प्रारूप में आउटपुट के बीच किसी प्रकार का विभाजक शामिल होना चाहिए, जैसे कि ,
या एक नई रेखा, और संख्याओं के बजाय संबंधित यूनिकोड मान (यानी ब्रेनफक) के साथ वर्णों को आउटपुट कर सकते हैं। आउटपुट का क्रम मायने नहीं रखता।
यह इनपुट हमेशा एक वर्गाकार संख्या होगी, जो से अधिक होगी । आपके कार्यक्रम में कोई सैद्धांतिक नहीं होना चाहिए सीमा , लेकिन यदि यह व्यावहारिक कारणों से बड़ी संख्या में विफल रहता है (जैसे कि 32-बिट संख्या से परे), तो यह पूरी तरह से ठीक है।
यदि इनपुट में कोई लेवेनशीन पड़ोसी नहीं है, तो आउटपुट को स्पष्ट रूप से प्रतिबिंबित करना चाहिए, जैसे कि आउटपुट कुछ नहीं, एक खाली सरणी / स्ट्रिंग, एक नकारात्मक पूर्णांक, , आदि।
यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे छोटा कोड जीत जाता है।
परीक्षण के मामलों
ये से तक के वर्गों के परिणाम हैं :
1: 4, 9, 16, 81
4: 1, 9, 49, 64
9: 1, 4, 49
16: 1, 36, 169, 196
25: 225, 256, 625
36: 16, 361
49: 4, 9
64: 4
81: 1, 841
100: 400, 900, 1600, 8100
121: 1521
144: 1444
169: 16, 1369
196: 16, 1296, 1936
225: 25, 625, 1225, 2025, 4225, 7225
256: 25
289: 2809
324: 3249
361: 36, 961
400: 100, 900, 4900, 6400
इसके अलावा, 1024
कोई पड़ोसी नहीं है, इसलिए एक अच्छा परीक्षण मामला है।
32 * 32 = 1024
कोई वर्ग लेवेंसहाइट पड़ोसी नहीं है।
1024
किसी भी लेवन्सहाइट पड़ोसी नहीं हैं, मैं उस उदाहरण को संपादित करूँगा
2025
हैं।