名哥的完全平方数
题号:NC16379
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

511 CF第一人名哥不上紫名不实习!
这天,名哥上CF刷了一道有趣的题(CF 480D),意犹未尽!
跟数学大佬浩佬吹嘘,浩佬看了题目:”这太简单了!我改一下,看你能做出来吗? 给一个长度为n的数组,做q次询问,每次询问区间[l,r]里有多少对数的乘积为完全平方数?”
名哥呆了,您能帮名哥解决吗?

输入描述:

第一行输入 n(1≤n≤3*10^5) ,表示数组的长度。
第二行输入a1……an(-1000000≤ai≤1000000)
第三行输入q(1≤n≤3*10^5) , 表示询问的次数
下面q行,每行两个整数表示查询的区间:l,r(1≤l≤r≤n)

输出描述:

对每次查询输出一行:输出1个整数 ans ,表示查询区间的两个数的乘积为完全平方数的对数。
示例1

输入

复制
5
1 -4 -36 2 0
4
1 2
2 3
3 5
4 4

输出

复制
0
1
2
0