#P3213. [HNOI2011] 勾股定理

    ID: 2149 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>最大公约数gcd枚举暴力连通块2011湖南

[HNOI2011] 勾股定理

题目描述

沫沫最近在研究勾股定理。对于两个正整数 A 与 B,若存在正整数 C 使得 A2+B2=C2,且 A 与 B 互质,则称(A,B)为一个互质勾股数对。

有一天,沫沫得到了 N 根木棍,其长度都是正整数,她准备从中挑选出若干根木棍来玩拼图游戏,为了使拼出的图案有凌乱美,她希望挑选出的木棍中任意两根的长度均不是互质勾股数对。现在,沫沫想知道有多少种满足要求的挑选木棍的方案。由于答案可能很大,你只要输出答案对 109+710^9+7 取模的结果。

输入格式

从文件input.txt中读入数据,输入文件第一行是一个正整数N,表示共有多少根木棍。

输入文件第二行是用空格隔开的N个正整数h1, h2, …, hN,其中对1≤i≤N,hi表示第i根木棍的长度。

输入的数据保证30%的数据满足对1iN1≤i≤N1hi30001≤h_i≤3000

另外30%的数据满足对1iN1≤i≤N1hi2000001≤hi≤200000

剩下的40%的数据满足对1iN1≤i≤N20000hi100000020000≤h_i≤1000000

100%的数据满足N1000000N≤1000000

输出格式

输出文件 output.txt 仅包含一个非负整数,表示满足要求的挑选木棍的方案数对 109+7 取模的结果。

4				
5 12 35 5	
8

提示

样例解释:(5,12)与(12,35)是互质勾股数对,故满足要求的挑选木棍的方案有8种,即:

{5},{12},{35},{5},{5,35},{35,5},{5,5},{5,35,5}。