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

C++ में दी गई रेंज में x² = 1 (mod p) के हल की संख्या


हमें पूर्णांक x और p दिए गए हैं। लक्ष्य समीकरण के हल की संख्या ढूंढना है - x² = 1 (mod p) जैसे कि x रेंज [1, N] में है।

हम इसे 1 से N तक पार करके और प्रत्येक संख्या को x के रूप में लेकर करेंगे, जांचेंगे कि (x*x)%p==1 है या नहीं। यदि हां तो काउंट बढ़ाते हैं।

आइए उदाहरणों से समझते हैं।

इनपुट - n=5, p=2

आउटपुट - हल की संख्या: 3

व्याख्या - रेंज 1 से 5 के बीच।

1²=1%2=1, काउंट=1 2²=4%2=0, काउंट=1 3²=9%2=1, काउंट=2 4²=16%2=0, काउंट=2 5²=25%2=1, काउंट=3 कुल हल की संख्या=3।

इनपुट - n=3, p=4

आउटपुट - हल की संख्या: 2

व्याख्या - रेंज 1 से 3 के बीच।

1²=1%4=1, काउंट=1 2²=4%4=0, काउंट=1 3²=9%4=1, काउंट=2 कुल हल की संख्या=2

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण

  • हम दो वेरिएबल n और p लेते हैं।

  • फंक्शन solutionsCount(int n,int p) दोनों पैरामीटर n और p लेता है और समीकरण के हल की संख्या लौटाता है: x²%p==1 (या x²=1 (mod p))।

  • x=1 से x=n तक शुरू करते हैं, जांचते हैं कि x*x==1 है या नहीं, यदि हां तो काउंट बढ़ाते हैं।

  • लूप के अंत में, काउंट में हल की संख्या होगी।

  • काउंट को परिणाम के रूप में लौटाते हैं।

उदाहरण

#include<bits/stdc++.h> using namespace std; int solutionsCount(int n, int p){ int count = 0; for (int x=1; x<=n; x++){ if ((x*x)%p == 1) { ++count; } } return count; } int main(){ int n = 8, p = 3; cout<<"हल की संख्या: "<<solutionsCount(n, p); return 0; }

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -

हल की संख्या: 6

  1. - C++ में 1 जोड़ने के बाद बदले गए बिट्स की संख्या गिनना

    हमें एक संख्या दी गई है मान लीजिए num और कार्य दिया गया संख्या में 1 जोड़ने पर बदले गए बिट्स की कुल संख्या की गणना करना है। किसी संख्या का बाइनरी प्रतिनिधित्व दिए गए संख्या को 0 और 1 के रूप में परिवर्तित करके किया जाता है और यह विभिन्न विधियों द्वारा किया जाता है। एक विधि में, हम दी गई संख्या का 2

  1. - C++ में हेक्साडेसिमल नंबर की गिनती करें

    हमें एक रेंज दी गई है जिसमें प्रारंभ और अंत है और कार्य दी गई रेंज में मौजूद हेक्साडेसिमल नंबरों या वर्णमाला की संख्या की गणना करना है। हेक्साडेसिमल वर्णमाला क्या हैं? कंप्यूटर शब्दों में, हेक्साडेसिमल नंबर वे नंबर हैं जिनका आधार 16 होता है जिसका अर्थ है कि बाइनरी अंक को 16-बिट में दर्शाया जा सकता

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

    हमें एक रेंज दी गई है जो एक पूर्णांक मान से शुरू होती है जिसे चर द्वारा धारित किया जाता है, मान लीजिए प्रारंभ से चर अंत तक और कार्य दी गई रेंज में उपलब्ध फैक्टोरियल संख्याओं की कुल संख्या को गिनना है। फैक्टोरियल संख्या क्या है एक संख्या का फैक्टोरियल एक संख्या में अंकों को गुणा करके घटते क्रम में