题目大意
题目描述
给定一个长度为 n 的正整数序列 a。
求该序列中有多少个连续子段的和为素数。换言之,计算满足 1≤l≤r≤n 且 ∑i=lrai 为素数的数对 (l,r) 的数量。
输入格式
第一行包含一个整数 T(1≤T≤104),表示测试用例的数量。
每个测试用例包含两行:
第一行为一个整数 n(1≤n≤106),表示序列的长度。
第二行为 n 个整数 a1,a2,…,an(1≤ai≤106,且单组测试数据内 ∑ai≤106),表示序列的元素。
保证同一个文件内所有测试用例的 n 的总和不超过 106,所有测试用例的 ∑ai 的总和不超过 106。
输出格式
对于每个测试用例,输出一行一个整数,表示和为素数的子段数量。
样例
输入:
1 2 3 4 5
| 2 4 1 2 3 4 12 1 1 4 5 1 4 1 9 1 9 8 10
|
输出:
样例解释
在第一个样例中,满足条件的 (l,r) 数对如下:
l=1,r=2:该子段的和为 3。
l=2,r=2:该子段的和为 2。
l=2,r=3:该子段的和为 5。
l=3,r=3:该子段的和为 3。
l=3,r=4:该子段的和为 7。
思路讲解
AC代码
心路历程(WA,TLE,MLE……)