#include <bits/stdc++.h>
using namespace std;
long long n, p, k, a[300001];
map<long long, int> mp;
long long mul(long long a, long long b) { return (a * b) % p; }
long long add(long long a, long long b) { return (a + b) % p; }
long long norm(long long x) { return (x + p) % p; }
long long pow(long long x, int y) {
  long long res = 1;
  for (int i = 0; i < y; i++) res = mul(res, x);
  return res;
}
int main(void) {
  cin >> n >> p >> k;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    mp[norm(pow(a[i], 4) - mul(a[i], k))]++;
  }
  long long ans = 0;
  for (auto it = mp.begin(); it != mp.end(); it++) {
    ans += it->second * (it->second - 1) / 2;
  }
  cout << ans << endl;
}
