## https://yukicoder.me/problems/no/3441 def main(): N = int(input()) P = list(map(int, input().split())) passed = [False] * N diff_array_list = [] for s_i in range(N): if not passed[s_i]: array = [s_i] v = s_i while s_i != (P[v] - 1): v = P[v] - 1 array.append(v) for s in array: passed[s] = True diff_array = [] for i in range(len(array)): t0 = array[i] t1 = array[(i + 1) % len(array)] diff = abs(t0 - t1) diff_array.append(diff) diff_array_list.append(diff_array) # 下準備 dp_sum = [0] * (N + 1) dp_index_set = [set() for _ in range(N + 1)] for index in range(len(diff_array_list)): for d in diff_array_list[index]: dp_sum[d] += 1 dp_index_set[d].add(index) for k in range(1, N): x = k ans = 0 index_set = set() while x <= N: ans += dp_sum[x] for i in dp_index_set[x]: index_set.add(i) x += k print(ans - len(index_set)) if __name__ == "__main__": main()