在本文中,我們將解釋什麼是模方程式的解,我們也將寫一個程式來找出模方程式的多個解。這是基本範例 -
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中函數中,我們將 X 和 Y 的值作為輸入,並透過呼叫 numberofsolutions() 函數來找出可能的解決方案的數量。
該函數檢查 X 和 Y 是否滿足X 應該大於 Y 的條件,因為我們找不到大於被除數的餘數。此函數呼叫另一個函數 numberofdivisor() 並取得 X 的除數數,從而得出餘數 Y。
此函數找出X 的除數數- Y 透過執行從1 到(X - Y)/2 的循環並檢查每個整數是否能整除,並且該整數不應完全整除X。
模方程式的解是除 X 並得到餘數 Y 的整數;我們從各種例子中了解到這一點。方程式可以有一些解,因此我們透過應用簡單的方法來找到這些解。
我們可以寫一個 C 程式來計算模方程式的解。我們可以用其他語言(例如 C、Java、Python 或任何其他程式語言)編寫相同的程式。希望您發現本文有助於理解如何找到模方程式的多個解的概念。
以上是使用C++找到模方程式的解的數量的詳細內容。更多資訊請關注PHP中文網其他相關文章!