जो उदाहरण आप पोस्ट कर रहे हैं वह Euler समस्या # 381 से बहुत निकट से संबंधित है। इसलिए मैं एक उत्तर दूंगा जो ईयूलर समस्या को हल नहीं करता है। मैं पोस्ट करूँगा कि कैसे आप factorials modulo a prime की गणना कर सकते हैं।
तो: n की गणना कैसे करें! मोडुलो पी?
त्वरित अवलोकन: यदि n, p, तो n! एक कारक p है, इसलिए परिणाम 0. बहुत जल्दी है। और अगर हम आवश्यकता को अनदेखा करते हैं कि पी को एक प्रधान होना चाहिए तो q को p, और n का सबसे छोटा प्रधान कारक होने दें! modulo p 0 है अगर n। q। यह भी आवश्यक नहीं है कि आपके प्रश्न का उत्तर देने के लिए p एक प्रधान है।
अब आपके उदाहरण में (n - i)! 1 ≤ i ≤ 5 के लिए आया था। आपको पाँच फैक्टरियों की गणना करने की आवश्यकता नहीं है: आप गणना करते हैं (n - 5) !, (n - 4) से गुणा करें (n - 4) जाएँ! (प्राप्त करने के लिए (n - 3) से गुणा करें (n - 3)! आदि। यह काम को लगभग एक कारक से कम कर देता है 5. समस्या का शाब्दिक रूप से समाधान न करें।
सवाल यह है कि एन की गणना कैसे करें! modulo m। स्पष्ट तरीका यह है कि n की गणना करें !, एक संख्या लगभग n n n दशमलव अंकों के साथ, और शेष modulo p की गणना करें। यही मेहनत है। प्रश्न: हम इस परिणाम को जल्दी कैसे प्राप्त कर सकते हैं? स्पष्ट काम न करके।
हम जानते हैं कि ((a * b * c) modulo p = (((a * b) modulo p) * c) modulo p।
N की गणना करने के लिए !, हम सामान्य रूप से x = 1 से शुरू करेंगे, फिर x को 1, 2, 3, ... n से गुणा करेंगे। मोडुलो फॉर्मूला का उपयोग करके, हम n की गणना करते हैं! modulo p की गणना बिना n !, x = 1 से शुरू करके, और फिर i = 1, 2, 3, .. के लिए, n को x के साथ x (x * i) modulo p से प्रतिस्थापित करते हैं।
हमारे पास हमेशा x <p और i <n होता है, इसलिए हमें केवल x * p की गणना करने के लिए पर्याप्त सटीकता की आवश्यकता होती है, न कि गणना करने के लिए बहुत उच्च परिशुद्धता की!। तो n की गणना करने के लिए! modulo p for p we 2 हम निम्नलिखित कदम उठाते हैं:
Step 1: Find the smallest prime factor q of p. If n ≥ q then the result is 0.
Step 2: Let x = 1, then for 1 ≤ i ≤ n replace x with (x * i) modulo p, and x is the result.
(कुछ उत्तर विल्सन के प्रमेय का उल्लेख करते हैं, जो केवल दिए गए उदाहरण के बहुत ही विशेष मामले में प्रश्न का उत्तर देता है, और Euler समस्या को हल करने के लिए बहुत उपयोगी है # 381, लेकिन सामान्य रूप से उस प्रश्न को हल करने के लिए उपयोगी नहीं है जो पूछा गया था)।