Problem p02574 (C++) — buggy submission, verdict: Runtime Error

#include <bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define For(i, a, b) for (long long i = a; i < b; i++)
#define pb push_back
using namespace std;
typedef long long ll;
ll power(ll x, ll y, ll p) {
  ll res = 1;
  x = x % p;
  while (y > 0) {
    if (y & 1) {
      res = (res * x) % p;
    }
    y = y >> 1;
    x = (x * x) % p;
  }
  return res;
}
ll mcd(ll a, ll b) {
  if (b > a)
    swap(a, b);
  if (b == 0)
    return a;
  else
    return mcd(b, a % b);
}
ll t, n, m, k;
bool esprimo(ll n) {
  ll s = 0;
  for (ll i = 1; i * i <= n; i++) {
    if (n % i == 0) {
      s++;
    }
  }
  if (s >= 2) {
    return false;
  }
  return true;
}
ll primos[] = {
    2,   3,   5,   7,   11,  13,  17,  19,  23,  29,  31,  37,  41,  43,  47,
    53,  59,  61,  67,  71,  73,  79,  83,  89,  97,  101, 103, 107, 109, 113,
    127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197,
    199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281,
    283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379,
    383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463,
    467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571,
    577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659,
    661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761,
    769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863,
    877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977,
    983, 991, 997, 1009};
ll b[1000005];
vector<ll> gtf(ll x) {
  vector<ll> ans;
  ll y = x;

  for (ll i = 0; primos[i] * primos[i] <= x; i++) {
    ll p = 0;
    while (y % primos[i] == 0) {
      y /= primos[i];
      if (p == 0)
        ans.pb(primos[i]);
      p++;
    }
  }
  if (y != 1) {
    ans.pb(y);
  }
  return ans;
}

int main() {
  //    cout<<fixed<<setprecision(2);
  // cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
  memset(b, 0, sizeof b);
  cin >> n;
  ll a[n];
  t = 0;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    vector<ll> cur;
    cur = gtf(a[i]);
    for (int j = 0; j < cur.size(); j++) {
      if (b[cur[j]] != 0) {
        t++;
      }
      b[cur[j]]++;
    }
  }
  ll g = a[0];

  if (t != 0) {
    for (int i = 0; i < n; i++) {
      g = __gcd(g, a[i]);
    }
    if (g == 1) {
      cout << "setwise coprime" << endl;
    } else {
      cout << "not coprime" << endl;
    }
  } else {

    cout << "pairwise coprime" << endl;
  }
}


Error: 0

Fixed submission:

#include <bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define For(i, a, b) for (long long i = a; i < b; i++)
#define pb push_back
using namespace std;
typedef long long ll;
ll power(ll x, ll y, ll p) {
  ll res = 1;
  x = x % p;
  while (y > 0) {
    if (y & 1) {
      res = (res * x) % p;
    }
    y = y >> 1;
    x = (x * x) % p;
  }
  return res;
}
ll mcd(ll a, ll b) {
  if (b > a)
    swap(a, b);
  if (b == 0)
    return a;
  else
    return mcd(b, a % b);
}
ll t, n, m, k;
bool esprimo(ll n) {
  ll s = 0;
  for (ll i = 1; i * i <= n; i++) {
    if (n % i == 0) {
      s++;
    }
  }
  if (s >= 2) {
    return false;
  }
  return true;
}
ll primos[] = {2,   3,   5,   7,   11,  13,  17,  19,  23,  29,  31,  37,  41,
               43,  47,  53,  59,  61,  67,  71,  73,  79,  83,  89,  97,  101,
               103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167,
               173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239,
               241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313,
               317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397,
               401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467,
               479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569,
               571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643,
               647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733,
               739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823,
               827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911,
               919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997};
ll b[1000005];
vector<ll> gtf(ll x) {
  vector<ll> ans;
  ll y = x;
  ll q = sizeof primos;
  for (ll i = 0; primos[i] * primos[i] <= x; i++) {
    ll p = 0;
    while (y % primos[i] == 0) {
      y /= primos[i];
      if (p == 0)
        ans.pb(primos[i]);
      p++;
    }
  }
  if (y != 1) {
    ans.pb(y);
  }
  return ans;
}

int main() {
  //    cout<<fixed<<setprecision(2);
  // cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
  memset(b, 0, sizeof b);
  cin >> n;
  ll a[n];
  t = 0;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    vector<ll> cur;
    cur = gtf(a[i]);
    for (int j = 0; j < cur.size(); j++) {
      if (b[cur[j]] != 0) {
        t++;
      }
      b[cur[j]]++;
    }
  }
  ll g = a[0];

  if (t != 0) {
    for (int i = 0; i < n; i++) {
      g = __gcd(g, a[i]);
    }
    if (g == 1) {
      cout << "setwise coprime" << endl;
    } else {
      cout << "not coprime" << endl;
    }
  } else {

    cout << "pairwise coprime" << endl;
  }
}