描述 有三个正整数x,y,zx,y,z,找到一个大于1的整数aa,将其作为除数分别除x,y,zx,y,z,得到相同的余数,问满足上述条件的aa的最小值是多少?若aa不存在,则输出No。 输入 输入一行,每两个数之间用一个空格隔开。(2=<x,y,z<=100000)(2=<x,y,z<=100000) 输出 若有满足要求的a,则输出a的值。若没有,则输出No。 输入样例 1 5 7 9 输出样例1 2 输入样例 2 2 3 4 输出样例2 No c++代码
时间: 2024-04-17 10:25:49 浏览: 110
```c++
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
int main() {
int x, y, z;
cin >> x >> y >> z;
int gcd_xy = gcd(x, y);
if (z % gcd_xy == 0) {
cout << gcd_xy << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
这是一个使用C++编写的解决方案。程序首先定义了一个求最大公约数的函数`gcd()`,然后读取输入的x、y、z。接下来,计算x和y的最大公约数gcd_xy,如果z能够被gcd_xy整除,则输出gcd_xy,否则输出"No"。
阅读全文