C ++でA%X=BとなるようなXのすべての可能な値のカウント
2つの整数AとB、および数値Xが与えられます。目標は、A%X=BとなるようにXが持つことができる値の数を見つけることです。上記の式の場合、A ==Bの場合、Xの無限の値が可能であるため、-1を返します。 A Bの場合、結果として(AB)の約数の数を返します。
例
入力
A=5, B=2
出力
Count of all possible values of X such that A % X = B are: 1
説明
5%3=2. So X is 3 here.
入力
A=10, B=10
出力
Count of all possible values of X such that A % X = B are: −1
説明
Here A==B so there are infinite solutions so −1 is returned.
以下のプログラムで使用されるアプローチは次のとおりです −
このアプローチでは、i=1からi*i <=(A-B)までのforループを使用して(A-B)の約数を計算します。 iが完全に分割されている場合(A-B)、それに応じてカウントを更新します。
-
整数AとBを入力として使用します。
-
A
-
A ==Bの場合、結果として-1を出力します。
-
A> Bの場合、関数possible_values(int A、int B)はAとBを取り、A%X=BとなるXのすべての可能な値のカウントを返します。
-
初期カウントを0とし、X=A-Bとします。
-
Xの約数を計算するために、i=1からi*i <(A-B)までのforループを使用してトラバースします。
-
いずれかのiがXを完全に分割する場合は、temp =i、temp_2 =B-1を取り、i * i!=Xの場合は、temp_2 =X/iを設定します。
-
temp> Bおよびtemp_2>Bの場合、カウントをインクリメントします。
-
結果としてループリターンカウントの終了時。
例
#include <bits/stdc++.h> using namespace std; int possible_values(int A, int B){ int count = 0; int X = A − B; for (int i = 1; i * i <= A − B; i++){ if(X % i == 0){ int temp = i; int temp_2 = B − 1; if(i * i != X){ temp_2 = X / i; } if(temp > B){ count++; } if(temp_2 > B){ count++; } } } return count; } int main(){ int A = 15, B = 5; if(A < B){ cout<<"Count of all possible values of X such that A % X = B are: "<<0; } else if(A == B){ cout<<"Count of all possible values of X such that A % X = B are: "<<−1; } else{ cout<<"Count of all possible values of X such that A % X = B are: "<<possible_values(A, B); } return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Count of all possible values of X such that A % X = B are: 1
-
C ++で(x%k)*(x / k)==nとなるような最小のxを見つけます
2つの正の整数nとkが与えられ、(x%k)*(x / k)がnと同じになるように、正の整数xを見つける必要があります。したがって、nとkがそれぞれ4と6の場合、出力は10になります。したがって、(10%6)*(10/6)=4です。 x%kの値は[1からk – 1]の範囲にあることがわかっているので(0は含まれません)ここで、nを除算する範囲で可能な整数を見つけるため、与えられた方程式は次のようになります。 * k)/(x%k)+(x%k) 例 #include<iostream> using namespace std; int minValue(int x, int y){ &
-
C ++でa%b =kとなるような配列内のすべてのペア(a、b)を検索します
配列Aがあるとすると、その配列から、a%b =kとなるようにすべてのペア(a、b)を取得する必要があります。配列がA=[2、3、4、5、7]、k =3であるとすると、ペアは(7、4)、(3、4)、(3、5)、(3、7)になります。 これを解決するために、リストをトラバースして、指定された条件が満たされているかどうかを確認します。 例 #include <iostream> using namespace std; bool displayPairs(int arr[], int n, int k) { bool pairAvilable = true;