ホームページ > バックエンド開発 > C++ > C/C++ でモジュラー方程式を解くプログラムを作成しますか?

C/C++ でモジュラー方程式を解くプログラムを作成しますか?

WBOY
リリース: 2023-09-12 14:21:03
転載
1235 人が閲覧しました

C/C++ でモジュラー方程式を解くプログラムを作成しますか?

ここでは、モジュラー方程式に関連した興味深い問題を見ていきます。 A と B という 2 つの値があるとします。 (A mod X) = B が成り立つように、変数 X が取り得る値の数を見つけなければなりません。

A が 26、B が 2 だとします。したがって、X の推奨値は {3, 4, 6, 8, 12, 24} となり、カウントは 6 になります。これが答えです。よりよく理解するためにアルゴリズムを見てみましょう。

Algorithm

possibleWayCount(a, b) −

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 &ndash; 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
ログイン後にコピー

Example

の中国語訳は次のとおりです。 :

#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
ログイン後にコピー

以上がC/C++ でモジュラー方程式を解くプログラムを作成しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート