可分解的正整数
题号:NC307641
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

定义一种特殊的整数序列,这种序列由**连续递增的整数**组成,并满足以下条件:
1. 序列长度至少为 3
2. 序列中的数字是连续递增的整数(即相邻元素之差为 1),可以包括正整数、负整数或 0

例如,[1, 2, 3][4, 5, 6, 7][−1, 0, 1] 是符合条件的序列,而 [1, 2](长度不足)和 [1, 2, 4](不连续)不符合要求。

现给定一组包含 N 个正整数的数据 A_1, A_2, \dots , A_N。如果某个 A_i 能够表示为符合上述条件的连续整数序列中所有元素的和,则称 A_i 是可分解的。

请你统计这组数据中可分解的正整数的数量。

输入描述:

输入的第一行包含一个正整数 N,表示数据的个数。

第二行包含 N 个正整数 A_1, A_2, \dots , A_N,表示需要判断是否可分解的正整数序列。

- 对于 100\% 的评测用例,1 \leq N \leq 10^51 \leq A_i \leq 10^9

输出描述:

输出一个整数,表示给定数据中可分解的正整数的数量。
示例1

输入

复制
3
3 6 15

输出

复制
3

说明

- A_i = 3 是可分解的,因为 [0, 1, 2] 的和为 0 + 1 + 2 = 3
- A_i = 6 是可分解的,因为 [1, 2, 3] 的和为 1 + 2 + 3 = 6
- A_i = 15 是可分解的,因为 [4, 5, 6] 的和为 4 + 5 + 6 = 15