题目描述

已知三个正整数a,b,c。现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。请问满足上述条件的x的最小值是多少?数据保证x有解。

输入

一行,三个不大于1000000的正整数a,b,c,两个整数之间用一个空格隔开。

输出

一个整数,即满足条件的x的最小值。

样例输入 
300 262 205
样例输出 
19

 代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int a,b,c;
	cin>>a>>b>>c;
	// 开始一个 for 循环,循环变量 i 从 2 开始,到 a 结束(包含 a)。
	// 这里的目的是从 2 开始依次检查每个数,看是否满足特定条件。
	for(int i=2;i<=a;i++)
	{
		// 判断 a 对 i 取余的结果、b 对 i 取余的结果以及 c 对 i 取余的结果是否都相等。
		// 如果相等,说明找到了一个满足条件的数 i。
		if(a%i==b%i&&b%i==c%i)
		{
			cout<<i;  // 输出满足条件的最小的 i。
			break;   // 使用 break 语句跳出循环,因为只需要找到第一个满足条件的数。
		}
	}
	return 0;
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐