Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में एक संख्या की अधिकतम घात ज्ञात करें जो फैक्टोरियल को विभाजित करती है


मान लीजिए हमारे पास दो संख्याएं n और fact हैं। हमें n की सबसे बड़ी घात ढूंढनी है, जो fact! (fact का फैक्टोरियल) को विभाजित करती है। इसलिए यदि fact = 5, और n = 2, तो आउटपुट 3 होगा। तो 5! = 120, और यह 2^3 = 8 से विभाज्य है।

यहां हम लेगेंड्रे के सूत्र का उपयोग करेंगे। यह एक अभाज्य संख्या की सबसे बड़ी घात ढूंढता है, जो fact! को विभाजित करती है। हम n के सभी अभाज्य गुणनखंड ढूंढेंगे, फिर उनमें से प्रत्येक की सबसे बड़ी घात ढूंढेंगे जो fact! को विभाजित करती है।

इसलिए यदि fact 146 है, और n = 15, तो n के अभाज्य गुणनखंड 5 और 3 हैं। तो

3 के लिए, यह होगा [146/3] + [48/3] + [16/3] + [5/3] + [1/3] = 48 + 16 + 5 + 1 + 0 = 70।

5 के लिए, यह होगा [146/5] + [29/5] + [5/5] + [1/3] = 29 + 5 + 1 + 0 = 35।

उदाहरण

#include<iostream> #include<cmath> using namespace std; int getPowerPrime(int fact, int p) { int res = 0; while (fact > 0) { res += fact / p; fact /= p; } return res; } int findMinPower(int fact, int n) { int res = INT_MAX; for (int i = 2; i <= sqrt(n); i++) { int cnt = 0; if (n % i == 0) { cnt++; n = n / i; } if (cnt > 0) { int curr = getPowerPrime(fact, i) / cnt; res = min(res, curr); } } if (n >= 2) { int curr = getPowerPrime(fact, n); res = min(res, curr); } return res; } int main() { int fact = 146, n = 5; cout << "Minimum power: " << findMinPower(fact, n); }

आउटपुट

Minimum power: 35

  1. - C++ में रिकर्सन का उपयोग करके किसी संख्या का फैक्टोरियल खोजने का प्रोग्राम

    एक गैर-ऋणात्मक पूर्णांक n का फैक्टोरियल उन सभी धनात्मक पूर्णांकों का गुणनफल होता है जो n से कम या बराबर होते हैं। उदाहरण के लिए: 4 का फैक्टोरियल 24 है। 4! = 4 * 3 * 2 *1 4! = 24 एक पूर्णांक का फैक्टोरियल रिकर्सिव प्रोग्राम या इटरेटिव प्रोग्राम का उपयोग करके पाया जा सकता है। निम्नलिखित प्रोग्राम एक स

  1. - C++ में इटरेशन का उपयोग करके किसी संख्या का फैक्टोरियल खोजने का प्रोग्राम

    एक गैर-ऋणात्मक पूर्णांक n का फैक्टोरियल उन सभी धनात्मक पूर्णांकों का गुणनफल होता है जो n से कम या बराबर होते हैं। उदाहरण के लिए: 6 का फैक्टोरियल 720 है। 6! = 6 * 5 * 4 * 3 * 2 *1 6! = 720 एक पूर्णांक का फैक्टोरियल रिकर्सिव प्रोग्राम या इटरेटिव प्रोग्राम का उपयोग करके पाया जा सकता है। एक फॉर लूप का उ

  1. - C++ प्रोग्राम: फैक्टोरियल खोजें

    परिचयएक गैर-ऋणात्मक पूर्णांक n का फैक्टोरियल उन सभी धनात्मक पूर्णांकों का गुणनफल है जो n से कम या बराबर हैं। उदाहरण के लिए: 5 का फैक्टोरियल 120 है। 5! = 5 * 4 * 3 * 2 * 1 5! = 120 एक पूर्णांक का फैक्टोरियल रिकर्सिव प्रोग्राम या नॉन-रिकर्सिव प्रोग्राम का उपयोग करके पाया जा सकता है। दोनों के उदाहरण नी