Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

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를 제공하는지 확인하는 간단한 접근 방식을 적용할 수 있습니다. . 모듈식 방정식에 대한 다른 솔루션을 찾기 위해 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

위 코드 설명

이제 프로그램을 쉽게 이해할 수 있도록 각 기능에 대해 설명하겠습니다.

메인() 함수

메인 함수에서 X와 Y의 값을 입력으로 받고 numberofsolutions() 함수를 호출하여 가능한 솔루션의 수를 찾습니다.

Numberofsolutions() 함수

이 함수는 X와 Y가 피제수보다 큰 나머지를 찾을 수 없기 때문에 X가 Y보다 커야 하는 조건을 충족하는지 확인합니다. 이 함수는 다른 함수 numberofdivisor()를 호출하고 X의 제수 수를 가져와 나머지 Y를 제공합니다.

Numberofdivisor() 함수

이 함수는 1에서 (X - Y)/2까지 루프를 실행하고 모든 정수의 나눗셈 여부를 확인하여 X - Y의 제수 개수를 찾습니다. 이 정수는 X를 완벽하게 나누지 않아야 합니다.

결론

모듈식 방정식의 해는 X를 나누고 나머지 Y를 제공하는 정수입니다. 우리는 다양한 예를 통해 이것을 이해합니다. 방정식에는 몇 가지 해가 있을 수 있으므로 간단한 접근 방식을 적용하여 이러한 해를 찾습니다.

모듈식 방정식의 해를 계산하는 C++ 프로그램을 작성할 수 있습니다. C, Java, Python 또는 기타 프로그래밍 언어와 같은 다른 언어로 동일한 프로그램을 작성할 수 있습니다. 이 기사가 모듈식 방정식에 대한 다양한 솔루션을 찾는 방법에 대한 개념을 이해하는 데 도움이 되기를 바랍니다.