CF483A 题解

题目传送门

小学生又来写题解啦!

刚看到范围,觉得不能枚举。

仔细想一下,其实可以,因为第一组解应该离左边界较近,很快可以出答案。

所以,我们可以尝试暴力枚举

最大公约数就用辗转相除法,写成一个函数,大家应该都会。

找到解就结束程序。

送上满分代码:

#include <iostream>
#include <cstdio>
#define LL long long
using namespace std;
LL gcd(LL x, LL y)  //辗转相除法。 
{
	if(y == 0) return x;
	return gcd(y, x % y);
}
int main()
{
	LL L, R;
	scanf("%lld%lld", &L, &R);
	for (LL a = L; a <= R; a++)
		for (LL b = a+1; b <= R; b++)
			for (LL c = b+1; c <= R; c++)  //这样枚举可以直接保证三个数的大小关系。 
				if (gcd(a, b) == 1 && gcd(b, c) == 1 && gcd(a, c) != 1)
				{
					printf("%lld %lld %lld", a, b, c);
					return 0;   //记得结束掉,因为只输出一组解。 
				}
	printf("-1");
	return 0;
}

首发:2022-01-31 11:32:28

posted @ 2022-08-25 00:01  liangbowen  阅读(19)  评论(0编辑  收藏  举报