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

C++ प्रोग्राम: फर्मेट का लिटिल थ्योरम इम्प्लीमेंट करना


फर्मेट का लिटिल थ्योरम एलिमेंट्री नंबर थ्योरी के मौलिक परिणामों में से एक है और फर्मेट प्राइमैलिटी टेस्ट का आधार है। थ्योरम का नाम पियरे डी फर्मेट के नाम पर रखा गया है, जिन्होंने इसे 1640 में बताया था। थ्योरम कहता है कि यदि p एक अभाज्य संख्या है, तो किसी भी पूर्णांक a के लिए, संख्या a^p - a, p का एक पूर्णांक गुणक है।

एल्गोरिदम

Begin
    फंक्शन power() का उपयोग a को मॉड्यूलो M के तहत पावर b तक बढ़ाने के लिए किया जाता है
    फंक्शन modInverse() का उपयोग मॉड्यूलो m के तहत a के मॉड्यूलर इनवर्स को ढूंढने के लिए:
        मान लें m अभाज्य है
        यदि a और m अपेक्षाकृत अभाज्य हैं, तो
            मॉड्यूलो इनवर्स a^(m - 2) mod m है
End

उदाहरण कोड

#include <iostream>
using namespace std;

int pow(int a, int b, int M) {
    int x = 1, y = a;
    while (b > 0) {
        if (b % 2 == 1) {
            x = (x * y);
            if (x > M)
                x %= M;
        }
        y = (y * y);
        if (y > M)
            y %= M;
        b /= 2;
    }
    return x;
}

int modInverse(int a, int m) {
    return pow(a, m - 2, m);
}

int main() {
    int a, m;
    cout << "Enter number to find modular multiplicative inverse: ";
    cin >> a;
    cout << "Enter Modular Value: ";
    cin >> m;
    cout << modInverse(a, m) << endl;
}

आउटपुट

Enter number to find modular multiplicative inverse: 26
Enter Modular Value: 7
3

  1. - C++ प्रोग्राम: हीप सॉर्ट लागू करना

    एक हीप एक पूर्ण बाइनरी ट्री है जो या तो मिन हीप या मैक्स हीप है। एक मैक्स हीप में, रूट पर कुंजी हीप में मौजूद सभी कुंजियों में अधिकतम होनी चाहिए। यह गुण उस बाइनरी ट्री में सभी नोड्स के लिए पुनरावर्ती रूप से सत्य होना चाहिए। मिन हीप मिनहीप के समान है। फंक्शन विवरण void BHeap::Insert(int ele): हीप मे

  1. - C++ प्रोग्राम: बबल सॉर्ट लागू करना

    बबल सॉर्ट तुलना-आधारित सॉर्टिंग एल्गोरिदम है। इस एल्गोरिदम में आसन्न तत्वों की तुलना की जाती है और सही क्रम बनाने के लिए स्वैप किया जाता है। यह एल्गोरिदम अन्य एल्गोरिदम की तुलना में सरल है, लेकिन इसकी कुछ कमियां भी हैं। यह एल्गोरिदम बड़ी संख्या में डेटा सेट के लिए उपयुक्त नहीं है। सॉर्टिंग कार्यों

  1. - C++ प्रोग्राम: रेडिक्स सॉर्ट लागू करना

    रेडिक्स सॉर्ट गैर-तुलनात्मक सॉर्टिंग एल्गोरिदम है। यह सॉर्टिंग एल्गोरिदम पूर्णांक कुंजियों पर काम करता है उन अंकों को समूहित करके जो समान स्थिति और मान साझा करते हैं। रेडिक्स एक संख्या प्रणाली का आधार है। जैसा कि हम जानते हैं कि दशमलव प्रणाली में रेडिक्स या आधार 10 है। इसलिए कुछ दशमलव संख्याओं को स