题目描述
沫沫最近在研究勾股定理。对于两个正整数 A 与 B,若存在正整数 C 使得 A2+B2=C2,且 A 与 B 互质,则称 (A,B) 为一个互质勾股数对。
有一天,沫沫得到了 N 根木棍,其长度都是正整数,她准备从中挑选出若干根木棍来玩拼图游戏,为了使拼出的图案有凌乱美,她希望挑选出的木棍中任意两根的长度均不是互质勾股数对。现在,沫沫想知道有多少种满足要求的挑选木棍的方案。由于答案可能很大,你只要输出答案对 109+7 取模的结果。
输入格式
从文件 input.txt 中读入数据,输入文件第一行是一个正整数 N,表示共有多少根木棍。
输入文件第二行是用空格隔开的 N 个正整数 h1,h2,…,hN,其中对 1≤i≤N,hi 表示第 i 根木棍的长度。
输出格式
输出文件 output.txt 仅包含一个非负整数,表示满足要求的挑选木棍的方案数对 109+7 取模的结果。
4
5 12 35 5
8
样例说明 1
(5,12) 与 (12,35) 是互质勾股数对,故满足要求的挑选木棍的方案有 8 种,即:{5},{12},{35},{5},{5,35},{35,5},{5,5},{5,35,5}。
数据规模与约定
对于 30% 的数据,对任意 1≤i≤N,1≤hi≤3000;
对于另外 30% 的数据,对任意 1≤i≤N,1≤hi≤2×105;
对于剩下 40% 的数据,对任意 1≤i≤N,2×105≤hi≤106;
对于 100% 的数据,N≤106。
提示
没有写明提示
题目来源
没有写明来源(题面来自洛谷)