Gcd 2023牛客暑期多校训练营6 G

登录---专业IT笔试面试备考平台_牛客网

题目大意:给出一个集合,集合中初始有2个数x,y(x!=y),每次操作可以将集合中任意两个不等的数的差放入集合或者将两个不等的数的gcd放入集合,给出一个数z,问z有没有可能出现在集合里

1<=t<=1e5;0<x,y,z<=1e9

思路:不妨令x>y,因为我们可以得到x,y的最大公因数,然后我们可以用x不断减去最大公因数就能得到小于x的所有是gcd的倍数的数,但因为两个相间的数不能相等,所以如果初始两个数中没有0就得不到0,然后用1倍gcd减二倍gcd就能得到负一倍的gcd,再用y-负数就能得到所有大于y的gcd的倍数,所以只要z不等于0且z是gcd的倍数,就能输出YES

cpp 复制代码
//#include<__msvc_all_public_headers.hpp>
#include<bits/stdc++.h>
using namespace std;
int gcd(int a, int b)
{
	return b ? gcd(b, a % b) : a;
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t;
	cin >> t;
	while (t--)
	{
		int x, y, z;
		cin >> x >> y >> z;
		int gc = gcd(x, y);
		if (z == 0 && x != 0 && y != 0)
		{//z等于0且x,y里面没有0
			cout << "NO" << endl;
			continue;
		}
		if (z % gc == 0)
		{
			cout << "YES" << endl;
		}
		else
		{
			cout << "NO" << endl;
		}
	}
	return 0;
}
相关推荐
2301_8002561141 分钟前
第九章:空间网络模型(空间网络查询、数据模型、Connected、with Recursive、pgRouting)
网络·数据库·算法·postgresql·oracle
逑之2 小时前
C语言笔记10:sizeof和strlen,指针与数组
c语言·笔记·算法
求梦8202 小时前
【力扣hot100题】旋转图像(15)
算法·leetcode·职场和发展
C雨后彩虹6 小时前
任务最优调度
java·数据结构·算法·华为·面试
少林码僧8 小时前
2.31 机器学习神器项目实战:如何在真实项目中应用XGBoost等算法
人工智能·python·算法·机器学习·ai·数据挖掘
钱彬 (Qian Bin)8 小时前
项目实践15—全球证件智能识别系统(切换为Qwen3-VL-8B-Instruct图文多模态大模型)
人工智能·算法·机器学习·多模态·全球证件识别
微露清风8 小时前
系统性学习C++-第十八讲-封装红黑树实现myset与mymap
java·c++·学习
Niuguangshuo9 小时前
EM算法详解:解密“鸡生蛋“的机器学习困局
算法·机器学习·概率论
a3158238069 小时前
Android 大图显示策略优化显示(一)
android·算法·图片加载·大图片
CSARImage9 小时前
C++读取exe程序标准输出
c++