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;