1 条题解

  • 0
    @ 2026-1-28 15:13:15
    #include<bits/stdc++.h>
    using namespace std;
    int arr[100100]; // 存储每组测试用例的序列,满足n≤1e5的范围要求
    
    int main(){
        int t; // [1] 测试用例的组数
        cin>>t;
        
        // [2] 遍历处理每一组测试用例
        for(int k=1;k<=t;k++){
            int n; // [3] 当前测试用例的序列长度
            cin>>n;
            
            // [4] 输入当前测试用例的序列
            for(int i=0;i<n;i++) cin>>arr[i];
            
            int flag=0; // [5] 标记是否存在符合条件的数(0=不存在,1=存在)
            
            // [6] 遍历序列中的每个数,检查是否是所有数的倍数
            for(int i=0;i<n;i++)
            {
                int flag2=1; // [7] 标记当前数是否满足条件,初始假设满足
                
                // [8] 检查当前数是否能整除序列中所有数
                for(int j=0;j<n;j++)
                {
                    if(arr[i]%arr[j]!=0) // [9] 若当前数不能整除某个数,标记为不满足
                    {
                        flag2=0;
                        break; // 提前终止内层循环,优化效率
                    }
                }
                
                if(flag2==1){// [10] 若当前数满足条件,更新总标记并退出外层循环
                    flag=1;
                    break;
                }
            }
            
            // [11] 根据标记输出结果
            if(flag==1) cout<<"Yes"<<endl;
            else cout<<"No"<<endl;
        }
        return 0;
    }
    
    • 1

    信息

    ID
    899
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者