मुझे लगता है कि इस चुनौती को क्रमबद्ध तरीके से समझाना आसान है। एक इनपुट नंबर N से शुरू करें और:
- इसका उच्चतम प्रमुख कारक ज्ञात कीजिए
- ऊपर और नीचे नंबरों की जांच करें एन और देखें कि क्या उच्चतम प्रधानमंत्री कारक अधिक है (यानी के उच्चतम प्रधानमंत्री कारक N-1 और / या एन 1 का कारक से अधिक है एन ।
- उच्चतर और / या निम्न संख्याओं में पड़ोसी N की जाँच जारी रखें जहाँ उच्चतम कारक बढ़ रहे हैं ( (N-2, N-3 ...) और / या (N + 2, N + 3 ...) और पर)
- एक बार किसी भी दिशा में कोई भी प्रमुख कारक नहीं होता है जो कि पहले से ही हमने पाया है कि हम रोक चुके हैं और हमारे द्वारा सामना किए गए उच्चतम प्रमुख कारक को आउटपुट करते हैं।
आइए एक उदाहरण देखें:
245प्रमुख कारक हैं 5, 7, 7। इसके पड़ोसी हैं:
244 -> 2, 2, 61
245 -> 5, 7, 7
246 -> 2, 3, 41
उच्चतम प्रधान कारक दोनों दिशा में बढ़ रहा है, इसलिए हमें अगले पड़ोसी को देखना चाहिए:
243 -> 3, 3, 3, 3, 3
244 -> 2, 2, 2, 61
245 -> 5, 7, 7
246 -> 2, 3, 41
247 -> 13, 19
उच्चतम प्राइम कारक अब दोनों दिशाओं में घट रहे हैं, इसलिए हमने जो उच्चतम प्राइम फैक्टर प्राप्त किया है 61, वह है और इसलिए लौटाया जाना चाहिए।
एक और उदाहरण:
आइए नजर डालते हैं 1024। इसके प्रमुख कारक हैं 2, 2, 2, 2, 2, 2, 2, 2, 2, 2। इसके निकटतम पड़ोसियों के प्रमुख कारक हैं:
1023 -> 3, 11, 31
1024 -> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
1025 -> 5, 5, 41
उच्चतम प्रधानमंत्री कारक दोनों दिशा में बढ़ रही हैं, से 2करने के लिए 31या 41। आइए पड़ोसियों को देखें:
1022 -> 2, 7, 73
1023 -> 3, 11, 31
1024 -> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
1025 -> 5, 5, 41
1026 -> 2, 3, 3, 19
के लिए सबसे प्रमुख कारक 1022है 73, और के लिए उच्चतम प्रमुख कारक 1026है 19। चूंकि हम इसमें रुचि नहीं रखते हैं 19, 41इसलिए कम है । यह अभी भी N से छोटी संख्या के लिए बढ़ रहा है, इसलिए हम उस दिशा में अगले एक की जाँच करेंगे :
1021 -> 1021
1022 -> 2, 7, 73
1023 -> 3, 11, 31
1024 -> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
1025 -> 5, 5, 41
1026 -> 2, 3, 3, 19
1021 एक अभाज्य है, और हमारे द्वारा प्राप्त किया गया सर्वोच्च प्रधान है, इसलिए इसे वापस किया जाना चाहिए।
नियम:
- आपको केवल इससे
Nबड़ा1और छोटा सकारात्मक मिलेगा2^31-2। - इनपुट और आउटपुट प्रारूप वैकल्पिक हैं, लेकिन संख्या 10 बेस में होनी चाहिए।
- जब तक उच्चतम मूल्य उस दिशा में बढ़ता जा रहा है, तब तक आपको उच्च अपराधों की खोज जारी रखनी चाहिए। निर्देश एक दूसरे से स्वतंत्र हैं।
परीक्षण के मामलों:
प्रारूप: N, highest_factor
2, 3
3, 3
6, 7
8, 11
24, 23
1000, 997
736709, 5417
8469038, 9431
N=2वास्तव में एक किनारे का मामला लगता है क्योंकि 1कोई प्रमुख कारक नहीं है, इसलिए कोई भी अधिकतम कारक नहीं है जिसके साथ हम यह तय करने के लिए तुलना कर सकते हैं कि क्या हमें जारी रखना चाहिए।
2लिए एक सर्वोच्च कारक मिलता है। हम तब5N-1 के लिए और61N + 1 के लिए प्राप्त करते हैं। फिर हम19एन -2 के लिए और67एन + 2 के लिए प्राप्त करते हैं। क्या हमें कम संख्या में कोशिश करते रहना चाहिए, कब से19>5या रुकना है5<61? यानी अधिकतम प्रति पक्ष रखा जाता है? (यदि उदाहरण गणितीय रूप से संभव हो तो मुझे यकीन नहीं है।)