Playing with GCD题解
首先先上题目链接:Playing with GCD - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

附上代码
#include <bits/stdc++.h>
# define debug(a) cout<<(#a)<<" = "<<a<<endl
using namespace std;
int cases;
int lcm(int a,int b){
return a*b/__gcd(a,b);
}
void solve(){
int n;
cin>>n;
int aList[n+1];
int bList[n+1];
for (int i = 1; i <= n; ++i) cin>>aList[i];
bList[0]=aList[1],bList[n]=aList[n];
for (int i = 1; i < n; ++i) {
bList[i]=lcm(aList[i],aList[i+1]);
}
for (int i = 0; i <n ; ++i) {
if(__gcd(bList[i],bList[i+1])!=aList[i+1]){
cout<<"No"<<endl;
return;
}
}
cout<<"Yes"<<endl;
}
int main() {
freopen(R"(E:\sduhw\now\ACM\test.in)", "r", stdin);
freopen(R"(E:\sduhw\now\ACM\test.out)", "w", stdout);
cin>>cases;
for (int i = 0; i < cases; ++i) solve();
return 0;
}