简简单单求方案
题号:NC219257
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给你 n 个数,你可以从中取任意个数,问有多少种方法能让取出来的数乘积为质数。由于答案可能非常大,你只需要输出方案数模 的值。

输入描述:

第一行一个整数 T 代表测试数据的组数,每一组数据的第一行包含一个正整数 n ,第二行有 n 个正整数 a_1,a_2...a_n
保证 T 组数据 n 的和小于

输出描述:

对于每一组数据,输出一个整数,代表有多少种方法能让取出来的数乘积为质数。
示例1

输入

复制
3
6
2 3 1 4 2 8
5
1 5 3 1 11
9
1 2 3 4 5 4 3 2 1

输出

复制
6
12
20

说明

对于第一个样例,种方法为:2, 2, 3, 2*1, 2*1, 3*1,共6种