#include <bits/stdc++.h>
using namespace std;
map<int, int> m;
map<int, bool> v;
queue<int> q;
int n, p;
long long u, k;
long long ans;
int main() {
  scanf("%d%d%lld", &n, &p, &k);
  for (int i = 1; i <= n; i++) {
    scanf("%lld", &u);
    long long s = (u * u % p * u % p * u % p - k * u % p + p) % p;
    m[s]++;
    if (!v[s]) {
      q.push(s);
      v[s] = 1;
    }
  }
  while (!q.empty()) {
    int t = q.front();
    q.pop();
    ans = ans + 1ll * m[t] * (m[t] - 1) / 2;
  }
  printf("%lld\n", ans);
}
