Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी/सी++ में मॉड्यूलर समीकरणों के समाधान की संख्या के लिए कार्यक्रम?

यहां हम मॉड्यूलर समीकरणों से संबंधित एक दिलचस्प समस्या देखेंगे। मान लीजिए कि हमारे पास दो मान ए और बी हैं। हमें संभावित मान की संख्या ज्ञात करनी है जो चर एक्स ले सकता है, जैसे कि (ए मॉड एक्स) =बी धारण करता है।

मान लीजिए A 26 है, और B 2 है। तो X के लिए पसंदीदा मान {3, 4, 6, 8, 12, 24} होगा। तो गिनती 6 होगी। यही उत्तर है। आइए बेहतर विचार प्राप्त करने के लिए एल्गोरिथम देखें।

एल्गोरिदम

संभववेकाउंट (ए, बी) -

begin
   if a = b, then there are infinite solutions
   if a < b, then there are no solutions
   otherwise div_count := find_div(a, b)
   return div_count
end

find_div(a, b) -

begin
   n := a – b
   div_count := 0
   for i in range 1 to square root of n, do
      if n mode i is 0, then
         if i > b, then
            increase div_count by 1
         end if
         if n / i is not same as i and (n / i) > b, then
            increase div_count by 1
         end if
      end if
   done
end

उदाहरण

#include <iostream>
#include <cmath>
using namespace std;
int findDivisors(int A, int B) {
   int N = (A - B);
   int div_count = 0;
   for (int i = 1; i <= sqrt(N); i++) {
      if ((N % i) == 0) {
         if (i > B)
            div_count++;
         if ((N / i) != i && (N / i) > B) //ignore if it is already counted
            div_count++;
      }
   }
   return div_count;
}
int possibleWayCount(int A, int B) {
   if (A == B) //if they are same, there are infinity solutions
      return -1;
   if (A < B) //if A < B, then there are two possible solutions
      return 0;
   int div_count = 0;
   div_count = findDivisors(A, B);
   return div_count;
}
void possibleWay(int A, int B) {
   int sol = possibleWayCount(A, B);
   if (sol == -1)
      cout << "For A: " << A << " and B: " << B << ", X can take infinite values greater than " << A;
   else
      cout << "For A: " << A << " and B: " << B << ", X can take " << sol << " values";
}
int main() {
   int A = 26, B = 2;
   possibleWay(A, B);
}

आउटपुट

For A: 26 and B: 2, X can take 6 values

  1. हेक्साडेसिमल से दशमलव के लिए C++ प्रोग्राम

    एक इनपुट के रूप में एक हेक्साडेसिमल संख्या के साथ दिया गया, कार्य दिए गए हेक्साडेसिमल संख्या को दशमलव संख्या में परिवर्तित करना है। कंप्यूटर में हेक्साडेसिमल संख्या को आधार 16 के साथ दर्शाया जाता है और दशमलव संख्या को आधार 10 के साथ दर्शाया जाता है और 0 - 9 के मूल्यों के साथ दर्शाया जाता है जबकि हे

  1. C++ में दशमलव से हेक्साडेसिमल रूपांतरण के लिए कार्यक्रम

    एक इनपुट के रूप में एक दशमलव संख्या के साथ दिया गया, कार्य दिए गए दशमलव संख्या को एक हेक्साडेसिमल संख्या में बदलना है। कंप्यूटर में हेक्साडेसिमल संख्या को आधार 16 के साथ दर्शाया जाता है और दशमलव संख्या को आधार 10 के साथ दर्शाया जाता है और 0 - 9 के मूल्यों के साथ दर्शाया जाता है जबकि हेक्साडेसिमल सं

  1. C++ में दशमलव से बाइनरी रूपांतरण के लिए कार्यक्रम

    एक इनपुट के रूप में एक दशमलव संख्या के साथ दिया गया, कार्य दिए गए दशमलव संख्या को एक बाइनरी संख्या में बदलना है। कंप्यूटर में दशमलव संख्या को आधार 10 के साथ दर्शाया जाता है और बाइनरी संख्या को आधार 2 के साथ दर्शाया जाता है क्योंकि इसमें केवल दो बाइनरी अंक 0 और 1 होते हैं जबकि दशमलव संख्या 0 - 9 से