首頁 >後端開發 >C++ >使用C++找到模方程式的解的數量

使用C++找到模方程式的解的數量

PHPz
PHPz轉載
2023-08-27 21:01:061099瀏覽

使用C++找到模方程式的解的數量

在本文中,我們將解釋什麼是模方程式的解,我們也將寫一個程式來找出模方程式的多個解。這是基本範例 -

Input : X = 30 Y = 2
Output : 4, 7, 14, 28
Explanation : 30 mod 4 = 2 (equals Y),
   30 mod 7 = 2 (equals Y),
   30 mod 14 = 2 (equals Y),
   30 mod 28 = 2 (equals Y)
Input : X = 30 Y = 2
Output : 4, 7, 14, 28
Explanation : 30 mod 4 = 2 (equals Y),
   30 mod 7 = 2 (equals Y),
   30 mod 14 = 2 (equals Y),
   30 mod 28 = 2 (equals Y)

如我們在上面的例子中看到的,每個整數都是除 X 後得到餘數 Y 的解。在這個例子中,30 除以 4、7、14、28 得到餘數 2,等於 Y。我們將以這種方式求解模方程式。

求解的方法

我們可以應用一種簡單的方法,將X 除以從1 開始的每個整數,並檢查它是否給出餘數Y,或者我們可以將( X - Y) 除以每個整數,並且除以(X - Y) 但不能除X 的整數是解。讓我們寫一個 C 程式來找出模方程式的不同解。

範例

#include <bits/stdc++.h>
using namespace std;
int numberofdivisor(int X, int Y){
    int N = (X - Y);
    int noOfDivisors = 1;
    for (int i = 1; i <= N/2; i++) {
        // if N is divisible by i
        if ((N % i) == 0) {
            // count if integer is greater than Y
            if (i > Y)
                noOfDivisors++;
        }
    }
    return noOfDivisors;
}
void numberofsolutions(int X, int Y){
    int noOfSolutions;
    if (X == Y)
        noOfSolutions = -1;
    if (X < Y)
        noOfSolutions = 0;
    if (X > Y)
        noOfSolutions = numberofdivisor(X, Y);
        if (noOfSolutions == -1) {
            cout << "X can take Infinitely many values"
            " greater than " << X << "\n";
    }
    else {
        cout << "Number of solution = " << noOfSolutions;
    }
}
// main function
int main(){
    int X,Y;
        cin >> X;
        cin >> Y;
    numberofsolutions(X, Y);
    return 0;
}

輸出

當我們寫入0 作為輸入時,程式會給出如下輸出-

X can take Infinitely many values greater than 0

當我們輸入其他數字時,上面的程式會顯示這樣的輸出(這裡我們提供了5 作為輸入) -

Number of solution = 2

上面程式碼的解釋

現在我們對每個函數進行解釋,以便您可以輕鬆理解程式.

main()函數

在main中函數中,我們將 X 和 Y 的值作為輸入,並透過呼叫 numberofsolutions() 函數來找出可能的解決方案的數量。

Numberofsolutions()函數

該函數檢查 X 和 Y 是否滿足X 應該大於 Y 的條件,因為我們找不到大於被除數的餘數。此函數呼叫另一個函數 numberofdivisor() 並取得 X 的除數數,從而得出餘數 Y。

Numberofdivisor() 函數

此函數找出X 的除數數- Y 透過執行從1 到(X - Y)/2 的循環並檢查每個整數是否能整除,並且該整數不應完全整除X。

結論

模方程式的解是除 X 並得到餘數 Y 的整數;我們從各種例子中了解到這一點。方程式可以有一些解,因此我們透過應用簡單的方法來找到這些解。

我們可以寫一個 C 程式來計算模方程式的解。我們可以用其他語言(例如 C、Java、Python 或任何其他程式語言)編寫相同的程式。希望您發現本文有助於理解如何找到模方程式的多個解的概念。

以上是使用C++找到模方程式的解的數量的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除