测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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)
上一题 下一题