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