दो संख्याओं n और m को देखते हुए, अनंत बिजली टॉवर का मूल्यांकन करें:
n ^ (n + 1) ^ (n + 2) ^ (n + 3) ^ (n + 4) ^ ... mod m
ध्यान रखें कि ^ सही-सहयोगी है। तो 2 ^ 3 ^ 4 = 2 ^ (3 ^ 4)। अब आप संभावित रूप से सही-सहयोगी ऑपरेटरों के अनंत अनुक्रम के लिए एक मूल्य कैसे निर्दिष्ट कर सकते हैं?
F (n, m, i) को परिभाषित करें क्योंकि पावर टॉवर अनंत ऊर्जा टॉवर के पहले i शब्दों से युक्त है। फिर कुछ स्थिर C ऐसा है जो हर i> C, f (n, m, i) = f (n, m, C) के लिए है। तो आप कह सकते हैं कि अनंत बिजली टॉवर एक निश्चित मूल्य पर परिवर्तित होता है। हम उस मूल्य में रुचि रखते हैं।
आपका कार्यक्रम एक उचित आधुनिक पीसी पर 10 सेकंड के अंदर n = 2017, m = 10 ^ 10 की गणना करने में सक्षम होना चाहिए। यही है, आपको एक वास्तविक एल्गोरिथ्म को लागू करना चाहिए, कोई ब्रूटफोर्मिंग नहीं।
आप मान सकते हैं कि आपकी प्रोग्रामिंग भाषा में संख्यात्मक सीमा के लिए n <2 30 और m <2 50 है , लेकिन आपके एल्गोरिथ्म को सैद्धांतिक रूप से किसी भी आकार n , m के लिए काम करना होगा । हालाँकि इन आकार सीमाओं के भीतर इनपुट के लिए आपका प्रोग्राम सही होना चाहिए, अगर इन सीमाओं के भीतर इनपुट्स हैं , तो इंटरमीडिएट वैल्यू ओवरफ्लो का उपयोग नहीं किया जाता है।
उदाहरण:
2, 10^15
566088170340352
4, 3^20
4
32, 524287
16
n
औरm
कर रहे हैं नहीं सह रूढ़ होने की गारंटी।