题目 20347

x

查看题解 ↗GitHub ↗如何评测
题号
20347
标签
比赛NOIP
来源
2018 国庆雅礼集训 10-4

x

x.cpp/in/out

  • 时间限制:1.0s
  • 空间限制:512MB

题目描述

给定一个长度为 nn 的正整数序列 {ai}\{a_i\}。

将 {1,2,…,n}\{1, 2, \ldots, n\} 划分成两个非空集合 SS、TT,使得 gcd⁡(∏i∈Sai,∏i∈Tai)=1\gcd\left(\prod_{i \in S} a_i, \prod_{i \in T} a_i\right) = 1。

求划分方案数,对 109+710^9 + 7 取模。

输入格式

从文件 x.in 中读入数据。

第一行,一个非负整数 tt,代表数据组数。

每组数据的第一行,一个正整数 nn。

第二行,nn 个正整数,代表 {ai}\{a_i\}。

输出格式

输出到文件 x.out 中。

输出 tt 行,每行一个非负整数,代表答案对 109+710^9 + 7 取模的结果。

样例输入

文本
3
3
2 3 1
3
2 3 6
4
2 3 6 1

样例输出

文本
6
0
2

样例解释

  • 第 1 组数据,任意一种非空集合划分均满足。
  • 第 2 组数据,任意一种非空集合划分均不满足。
  • 第 3 组数据,S={1,2,3},T={4}S = \{1, 2, 3\}, T = \{4\},gcd⁡(a1⋅a2⋅a3,a4)=1\gcd(a_1 \cdot a_2 \cdot a_3, a_4) = 1;或者 S={4},T={1,2,3}S = \{4\}, T = \{1, 2, 3\},gcd⁡(a4,a1⋅a2⋅a3)=1\gcd(a_4, a_1 \cdot a_2 \cdot a_3) = 1。

数据范围

保证 0≤t≤50 \le t \le 5,1≤n≤1051 \le n \le 10^5,1≤ai≤1061 \le a_i \le 10^6。

Subtask 分值 n≤n \le ai≤a_i \le
1 20 15 15
2 30 10310^3 10610^6
3 10 10510^5 1
4 10 10510^5 2
5 30 10510^5 10610^6

数据下载

题目 20347 的公开数据

正在读取文件列表…

常用命令

题目 20347 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。