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

C++ में दिए गए अभाज्य संख्या का गुणक होने वाला AP का पहला तत्व खोजें


अवधारणा

एक दिए गए प्रथम पद (A) और सार्व अंतर (d) के एक अंकगणितीय प्रगति के संबंध में, और एक अभाज्य संख्या (P), हमारा कार्य दी गई AP में उस पहले तत्व की स्थिति निर्धारित करना है जिसे दिए गए अभाज्य संख्या P का गुणक माना जाता है।

इनपुट

A = 3, d = 4, P = 5

आउटपुट

3

व्याख्या

दिए गए AP का चौथा पद अभाज्य संख्या 5 का गुणक है।

प्रथम पद = 3

द्वितीय पद = 3+4 = 7

तृतीय पद = 3+2*4 = 11

चतुर्थ पद = 3+3*4 = 15

विधि

मान लें पद AN हो। इसके परिणामस्वरूप,

AN = (A + (N-1)*d)

तो, यह दिया गया है कि AN, P का गुणक है। इसके परिणामस्वरूप,

A + (N-1)*d = l*P

यहां, l एक स्थिरांक है।

तो मान लें A, (A % P) हो और d, (d % P) हो। अब, हमारे पास (N-1)*d = (l*P – A) है।

RHS पर P को जोड़कर और घटाकर, हम प्राप्त करते हैं −

(N-1)*d = P(l-1) + (P-A),

इस मामले में, P-A को एक गैर-ऋणात्मक संख्या माना जाता है

(क्योंकि A को A%P से प्रतिस्थापित किया जाता है जो P से छोटा है) अंत में दोनों तरफ मॉड लेकर −

((N-1)*d)%P = (P-A)%P या, ((N-1)d)%P = P-A

एक Y < P की गणना मान लें, ताकि (d*Y)%P = 1। अब, इस Y को d का P के संबंध में व्युत्क्रम मॉड्यूलो कहा जाता है।

अंत में उत्तर N है −

((Y*(P-A)) % P) + 1।

उदाहरण

<प्रि क्लास="प्रिटीप्रिंट नोट्रांसलेट">#include <bits/stdc++.h> using namespace std; // पुनरावर्ती फ़ंक्शन (x1^y1)%p1 की गणना करने के लिए // O(log y1) में */ int power(int x1, int y1, int p1){    // परिणाम को इनिशियलाइज़ करने के लिए उपयोग किया जाता है    int res1 = 1;    // x को अपडेट करने के लिए उपयोग किया जाता है यदि यह अधिक है या    // p के बराबर है    x1 = x1 % p1;    while (y1 > 0) {       // यह देखा गया है कि यदि y1 विषम है, तो x1 को       परिणाम से गुणा करें       if (y1 & 1)          res1 = (res1 * x1) % p1;          // y1 अब सम होना चाहिए       y1 = y1 >> 1; // y1 = y1/2       x1 = (x1 * x1) % p1;    }    return res1; } // सामान्य में निकटतम तत्व खोजने वाला फ़ंक्शन int NearestElement1(int A, int d, int P){    // आधार शर्तें दिखाता है    if (A == 0)       return 0;    else if (d == 0)       return -1;    else {       int Y = power(d, P - 2, P);       return (Y * (P - A)) % P;    } } // ड्राइवर कोड int main(){    int A = 3, d = 4, P = 5;    // A और d दोनों को मॉड्यूलो करें    A %= P;    d %= P;    // फ़ंक्शन कॉल दिखाता है    cout << NearestElement1(A, d, P);    return 0; }

आउटपुट

3

  1. - C++ में जांचें कि nCr दी गई अभाज्य संख्या से विभाज्य है या नहीं

    मान लीजिए तीन वेरिएबल N, R और P हैं। N और R का उपयोग NCR प्राप्त करने के लिए किया जाता है और P एक अभाज्य संख्या है। हमें यह पता लगाना है कि NCR P से विभाज्य है या नहीं। मान लीजिए N = 7, R = 2 और P = 3, तो 7C2 = 21, जो 3 से विभाज्य है, इसलिए आउटपुट true होगा। हम जानते हैं कि NCR = N! / (R! * (N &ndas

  1. - C++ का उपयोग करके अभाज्य संख्याएं खोजने का सबसे तेज़ एल्गोरिदम कौन सा है?

    एराटोस्थनीज की छलनी (Sieve of Eratosthenes) n से छोटी अभाज्य संख्याएं खोजने के सबसे कुशल तरीकों में से एक है जब n लगभग 10 मिलियन से छोटा हो। एराटोस्थनीज की छलनी को प्रदर्शित करने वाला एक प्रोग्राम निम्नलिखित है। उदाहरण #include <bits/stdc++.h> using namespace std; void SieveOfEratosthenes(int

  1. - Python में दिए गए अभाज्य संख्या का गुणक होने वाले AP में पहला तत्व ढूंढना

    मान लीजिए हमारे पास एक AP श्रृंखला का पहला पद (A) और सार्व अंतर (d) है, और हमारे पास एक अभाज्य संख्या P भी है, हमें दिए गए AP में उस पहले तत्व की स्थिति ढूंढनी है जो दी गई अभाज्य संख्या P का गुणक है। तो, यदि इनपुट A = 3, D = 4, P = 5 की तरह है, तो आउटपुट 3 होगा क्योंकि दी गई AP का चौथा पद अभाज्य संख