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

C/C++ में मॉड्यूलर समीकरणों के हल की संख्या के लिए प्रोग्राम


समस्या विवरण

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

उदाहरण

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

एल्गोरिदम

possibleWayCount(a, b)
शुरुआत
    यदि a = b, तो अनंत हल हैं
    यदि a < b, तो कोई हल नहीं है
    अन्यथा div_count := find_div(a, b)
    वापस div_count
अंत

find_div(a, b)
शुरुआत
    n := a - b
    div_count := 0
    i को 1 से n के वर्गमूल तक लूप
        यदि n mod i = 0, तो
            यदि i > b, तो
                div_count को 1 से बढ़ाएं
            अंत यदि
            यदि n/i, i के समान नहीं है और (n/i) > b, तो
                div_count को 1 से बढ़ाएं
            अंत यदि
        अंत यदि
    अंत लूप
    वापस div_count
अंत

C++ प्रोग्राम उदाहरण

#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)
                div_count++;
        }
    }
    return div_count;
}

int possibleWayCount(int A, int B) {
    if (A == B)
        return -1;
    if (A < B)
        return 0;
    int div_count = findDivisors(A, B);
    return div_count;
}

void possibleWay(int A, int B) {
    int sol = possibleWayCount(A, B);
    if (sol == -1)
        cout << "A: " << A << " और B: " << B << " के लिए, X " << A << " से बड़े अनंत मान ले सकता है";
    else
        cout << "A: " << A << " और B: " << B << " के लिए, X " << sol << " मान ले सकता है";
}

int main() {
    int A = 26, B = 2;
    possibleWay(A, B);
}

आउटपुट

A: 26 और B: 2 के लिए, X 6 मान ले सकता है
  1. C++ में हेक्साडेसिमल से डेसिमल रूपांतरण C++ में हेक्साडेसिमल से डेसिमल रूपांतरण

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

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

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

  1. C++ में डेसिमल से बाइनरी रूपांतरण C++ में डेसिमल से बाइनरी रूपांतरण

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