मान लीजिए हमें दो पूर्णांक संख्याएँ m और a दी गई हैं। अब एन =पी<उप>1उप> (a + 1) *p<उप>2उप> (a + 2) *...*p<उप>एमउप> (a + m) , जहां pi i-th अभाज्य संख्या है और i> 0। हमें k का मान ज्ञात करना है, जहाँ k =n के f(x) मानों का योग है। यहाँ f(x) मान n के प्रत्येक भाजक के भाजक मानों की संख्या है।
इसलिए, यदि इनपुट m =2, a =1 जैसा है, तो आउटपुट 60 होगा।
- तो, n =2^2 x 3^3
- n =4 x 27
- n =108
108 के भाजक हैं:1, 2, 3, 4, 6, 9, 12, 18, 27, 36, 54, 108
प्रत्येक भाजक के f(x) मान हैं:f(1) + f(2) + f(3) + f(4) + f(6) + f(9) + f(12) + f(18) + f(27) + f(36) + f(54) + f(108)
=1 + 2 + 2 + 4 + 4 + 3 + 5 + 6 + 4 + 9 + 8 + 12
=60.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- रक्षा मंत्रालय:=10^9 + 7
- फ़ंक्शन को परिभाषित करें sum() । इसमें n
- . लगेगा
- रिटर्न फ्लोर वैल्यू ((n * (n + 1)) / 2)
- एक फंक्शन डिवीजन () को परिभाषित करें। इसमें ए, बी, मॉड लगेगा
- यदि एक मॉड बी 0 के समान है, तो
- ए / बी का रिटर्न फ्लोर वैल्यू
- a :=a + mod * Division((-a modulo b), (mod modulo b), b)
- (ए / बी) मोडुलो मोड का रिटर्न फ्लोर वैल्यू
- यदि एक मॉड बी 0 के समान है, तो
- mat :=1 मान वाली एक नई सूची
- चटाई का आकार <=m + a, करते समय
- सम्मिलित करें (मैट का अंतिम तत्व * योग (लेन (मैट) +1)) मॉड एमओडी चटाई के अंत में
- रिटर्न डिवीजन (मैट [एम + ए], मैट [ए], एमओडी)
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
MOD = 10**9 + 7 def summ(n): return ((n) * (n + 1)) // 2 def division(a, b, mod): if a % b == 0: return a // b a += mod * division((-a) % b, mod % b, b) return (a // b) % mod def solve(m, a): mat = [1] while len(mat) <= m + a: mat.append((mat[-1] * summ(len(mat)+1)) % MOD) return division(mat[m + a] , mat[a], MOD) print(solve(2, 1))
इनपुट
2, 1
आउटपुट
60