返回首页 返回题库

寻找倍数

C++ 简单 GESP三级真题 #数组#循环#条件判断

题目描述

题面描述

小杨有一个包含n个正整数的序列A=[a1,a2,...,an],他想知道是否存在 i (1≤i≤n)使得ai是序列A中所有数的倍数。

输入格式

第一行包含一个正整数 t ,代表测试用例组数。

接下来是t组测试用例。

对于每组测试用例,一共两行。其中,第一行包含一个正整数n;第二行包含n个正整数,代表序列A。

输出格式

对于每组测试用例,如果存在 i (1 ≤ i ≤ n )满足对于所有k (1 ≤ k ≤ n ) ai是ak的倍数,输出Yes,否则输出No。

样例1

输入:

2
3
1 2 4
5
1 2 3 4 5

输出:

Yes
No

样例解释

对于第一组数据,对于 a3=4,满足a3 是a1 和a2 的倍数。

数据范围

对于全部数据,保证有1 ≤ t ≤ 10,1 ≤ n ≤ 105, 1 ≤ ai ≤ 109。

时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
考察的核心知识点包括数组存储数据、循环遍历序列、寻找最大值的方法、利用取余运算判断倍数关系。解题思路:只有序列中的最大值才有可能成为所有数的倍数(因为任何比最大值小的数都无法整除最大值),因此可以先找到序列的最大值,再逐一检查最大值是否能被序列中的每个数整除,若全部能整除则输出Yes,否则输出No。常见易错点:忽略检查最大值自身(虽逻辑上无需担心,但代码中应包含所有元素)、提前结束输入或输出。
⚙ 开始做这道题 4 人做过 · 2 收藏 · 16 浏览

讨论(0)