आपको हमेशा की तरह 8 के माध्यम से अंक 0 से मिलकर एक गैर-नकारात्मक (आधार 9) गैर-नकारात्मक पूर्णांक दिया जाता है। हालाँकि इस संख्या में अंकों की संख्या (अग्रणी शून्य के साथ) एक प्रीफेक्ट वर्ग है।
इस वजह से, संख्या को एक वर्ग ग्रिड में व्यवस्थित किया जा सकता है (अभी भी संरक्षित आदेश पढ़ने के साथ)।
1480 (1125 आधार 10) के साथ उदाहरण:
14
80
अब इस तरह के गैर-ग्रिड ग्रिड में प्रत्येक अंक को किसी अन्य ग्रिड स्थान ( आवधिक सीमा शर्तों के साथ ) का संकेत मिलता है :
432
501
678
यह वह कह रहा है
0 = stay still
1 = move right
2 = move right and up
3 = move up
...
8 = move right and down
इसलिए, यदि आप 1480 ग्रिड में 4 पर शुरू करते हैं, तो आप ऊपर जाते हैं (पीबीसी को याद रखें) और 8 पर छोड़ दिया, जिसका मतलब है कि आप दाईं ओर नीचे और 4 पर वापस जाते हैं, जिसमें 2 अवधि के साथ एक चक्र शुरू होता है।
सामान्य तौर पर यह प्रक्रिया तब तक जारी रहती है जब तक कि आप 0 पर नहीं पहुंच जाते हैं या एक चक्र नजर नहीं आता है। (ए 0 को अवधि 1. के साथ एक चक्र माना जाता है)
1480 के मामले में, यह अवधि 2 2 2 1
क्रमशः 4 शुरुआती अंकों में से प्रत्येक पर पहुंच गई।
एक बड़ी ग्रिड के लिए ये संख्या 8 से बड़ी हो सकती है, लेकिन हम अभी भी उन्हें एक नए गैर-संख्या में "अंकों" के रूप में उपयोग कर सकते हैं (बस 9 ^ n के गुणांक जैसे कि वे अंक थे):
2*9^3 + 2*9^2 + 2*9 + 1 = 1639 (base 10) = 2221 (base 9)
हम इसे मूल गैर-संख्या की ताकत कहेंगे। तो 1480 की ताकत 1639 (बेस 10) या, समकक्ष, 2221 (बेस 9) है।
चुनौती
सबसे छोटा कार्यक्रम लिखें जो बताता है कि क्या एक गैर संख्या की ताकत, गैर से कम या उससे अधिक है, जो गैर संख्या के बराबर है। (आपको ताकत की गणना करने की आवश्यकता नहीं है।)
इनपुट एक नॉन-नेगेटिव नॉनरी नंबर होगा जिसमें एक वर्ग संख्या का अंक (और 0 के विशेष मामले के अलावा कोई अग्रणी शून्य) नहीं होगा। इसे कमांड लाइन या स्टड से आना चाहिए।
आउटपुट को stdout में जाना चाहिए:
G if the strength is larger than the original number (example: 1480 -> strength = 2221)
E if the strength is equal to the original number (example: 1 -> strength = 1)
L if the strength is less than the original number (example: 5 -> strength = 1)
फन बोनस चैलेंज:
व्हाट्सएप सबसे ज्यादा इनपुट जो आप पा सकते हैं, जो इसकी ताकत के बराबर है? (क्या कोई सीमा है?)