求助T3,只有4分,错的离谱
  • 板块学术版
  • 楼主AndyPomeloMarsGotoHE
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/7/22 17:38
  • 上次更新2023/11/3 08:13:52
查看原帖
求助T3,只有4分,错的离谱
820210
AndyPomeloMarsGotoHE楼主2023/7/22 17:38

代码:

#include <bits/stdc++.h>
#define ll long long
using namespace std;

ll T, N, F, l;

inline ll gcd(ll x, ll y){
	return y > 0 ? gcd(y, x % y) : x;
}

inline ll lcm(ll x, ll y){
    return x / gcd(x, y) * y;
}

inline bool check(ll x, ll y){
    while (y) {
        ll tmp = y;
        y = x % y, x = tmp;
    }
    return x == 1;
}

int main(){
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cin >> T;
    while (T--){
        F = l = 0;
        cin >> N;
        if (N == 2){
            ll x, y;
            cin >> x >> y;
            cout << (check(x, y) ? "Yes" : "No") << endl;
        }
        else{
            for (int i = 1; i <= N; ++i){
                ll x;
                cin >> x;
                if (i == 1){
                    l = x;
                    continue;
                }
                if (!check(x, l)){
                    for (int j = i + 1, y; j <= N; ++j) cin >> y;
                    cout << "No" << endl, F = 1;
                    break;
                }
                l = lcm(l, x);
            }
            if (!F) cout << "Yes" << endl;
        }
    }
    return 0;
}

2023/7/22 17:38
加载中...