मान लीजिए कि हमारे पास एक संख्या है पीएफ प्रमुख कारकों की संख्या का प्रतिनिधित्व करता है। हमें एक धनात्मक संख्या n बनानी है जो निम्नलिखित शर्तों को पूरा करती है -
-
n के अभाज्य गुणनखंडों की संख्या (भिन्न हो भी सकती है और नहीं भी) अधिकतम pf है।
-
n के अच्छे भाजक की संख्या अधिकतम होती है। जैसा कि हम जानते हैं कि n का भाजक अच्छा होता है जब वह n के प्रत्येक अभाज्य गुणनखंड से विभाज्य होता है।
हमें n के अच्छे भाजक की संख्या ज्ञात करनी है। अगर उत्तर बहुत बड़ा है तो परिणाम मॉड्यूलो 10^9 + 7 लौटाएं।
इसलिए, यदि इनपुट pf =5 जैसा है, तो आउटपुट 6 होगा क्योंकि n =200 के लिए हमारे पास अभाज्य गुणनखंड हैं [2,2,2,5,5] और इसके अच्छे भाजक हैं [10,20,40,50,100,200 ] तो 6 भाजक।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
अगर पीएफ 1 के समान है, तो
-
वापसी 1
-
-
मी :=10^9 + 7
-
q:=pf/3 का भागफल, r :=pf mod 3
-
यदि r, 0 के समान है, तो
-
वापसी 3^क्यू मॉड एम
-
-
अन्यथा जब r 1 के समान हो, तब
-
वापसी (3^(q-1) मॉड एम)*4 मॉड एम
-
-
अन्यथा,
-
वापसी (3^क्यू मॉड एम)*2 मॉड एम
-
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें
def solve(pf): if pf == 1: return 1 m = 10** 9 + 7 q, r = divmod(pf, 3) if r == 0: return pow(3, q, m) elif r == 1: return pow(3, q-1, m) * 4 % m else: return pow(3, q, m) * 2 % m pf = 5 print(solve(pf))
इनपुट
5
आउटपुट
6