# https://yukicoder.me/problems/no/3579 def main(): N, P, C = map(int, input().split()) A = list(map(int, input().split())) array = [] prev = False for a in A: if a % P != 0: if not prev: array.append([a]) else: array[-1].append(a) prev = True else: prev = False if C == 0: ans = 0 for x in array: ans += (len(x) * (len(x) + 1)) // 2 total = (N * (N + 1)) // 2 print(total - ans) else: answer = 0 inv_c = pow(C, P - 2, P) for x_array in array: p_map = {1: 1} cum_p = 1 for a in x_array: cum_p *= a cum_p %= P x = (cum_p * inv_c) % P if x in p_map: answer += p_map[x] if cum_p not in p_map: p_map[cum_p] = 0 p_map[cum_p] += 1 print(answer) if __name__ == "__main__": main()