4627: 【GESP2406三级】寻找倍数

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:17 解决:5

题目描述

杨有⼀个包含$n$ 个正整数的序列$A=[a_1,a_2,...,a_n]$ ,他想知道是否存在$i$ ($1\le i\le n$ ) 使得$a_i$ 是序列$A$ 中所有数的倍数。

输入

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

输出

对于每组测试用例,如果存在$i$ ($1\le i\le n$ )满足对于所有$k$ ($1\le k\le n$ )$a_i$ 是$a_k$ 的倍数,输出 Yes,否则输出 No

样例输入 复制

2
3
1 2 4
5
1 2 3 4 5

样例输出 复制

Yes
No

提示

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int a[N];
int main(){
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        int x = 0;
        for(int i=1;i<=n;i++){
            cin>>a[i];
            x =max(x,a[i]);
        }
        int fl = 0;
        for(int i=1;i<=n;i++){
            if(x%a[i])fl=1;
        }
        if(fl)cout<<"No\n";
        else cout<<"Yes\n";
    }
}