计算X的所有可能值,以使C ++中的A%X = B
给定两个整数A和B以及一个数字X。目标是找到X可以具有的值计数,以便A%X = B。对于上述公式,如果A == B,则X的无穷大是可能的,因此返回-1。如果A <B,则没有解,因此返回0。如果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.
以下程序中使用的方法如下-
在这种方法中,我们将使用for循环从i = 1到i * i <=(AB)计算(AB)的除数。如果有任何一个i除以(AB),则相应地更新计数。
以整数A和B作为输入。
如果A <B,则打印0。
如果A == B,则打印-1作为结果。
对于A> B,函数 possible_values(int A, int B) 取A和B并返回X的所有可能值的计数,以使A%X =B。
取初始计数为0且X = AB。
使用for循环从i = 1到i * i <(AB)进行遍历,以计算X的除数。
如果有任何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
以上是 计算X的所有可能值,以使C ++中的A%X = B 的全部内容, 来源链接: utcz.com/z/315853.html