The problem statement here is https://mirror.codeforces.com/contest/1535/problem/B
#include<bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n;
int ans = 0;
cin >> n;
int a[n+5];
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= n; i++) {
for (int j = i+1; j <= n; j++) {
if (__gcd(a[i], a[j]*2) + __gcd(a[i]*2, a[j]) > 2) ans++;
}
}
cout << ans << endl;
}
return 0;
}
I can't understand why this is an accepted solution.
Even when here we are counting two times 1) gcd(2*a[j],a[i]) 2) gcd(2*a[i],a[j])
Answer should have been something else.
In other words what is the need to see the two times the gcd ??