A33338. 完全平方数题面描述小杨同学有一个包含n个非负整数的序列A,他想要知道其中有多少对下标组合 <i,j>( 1≤i , j≤n , i<j ),使得 Ai + Aj 是完全平方数。如果x是完全平方数,则存在非负整数y使得 y × y = x。
填空题
中等
知识点
题目描述
完全平方数
题面描述
小杨同学有一个包含n个非负整数的序列A,他想要知道其中有多少对下标组合 <i,j>( 1≤i , j≤n , i<j ),使得 Ai + Aj 是完全平方数。
如果x是完全平方数,则存在非负整数y使得 y × y = x。
输入格式
第一行一个非负整数n,表示非负整数个数。
第二行包含n个非负整数 A1,A2......An,表示序列A包含的非负整数。
输出格式
输出一个非负整数,表示和是完全平方数的非负整数对数。
输入样例
5
1 4 3 3 5输出样例
3参考答案
n = int(input())
A = list(map(int, input().split()))
ans = 0
for i in range(n):
for j in range(i + 1, n):
num = A[i] + A[j]
tmp = int(num ** 0.5 + 1e-6)
if tmp * tmp == num:
ans += 1
print(ans)
上一题
下一题