问题背景
对于一个整数 a,如果存在一个整数 b,满足 a=b×b,则我们称整数 a 是一个“完全平方数”。比如:
- 整数 1 是完全平方数,因为 1=1×1
- 整数 9 是完全平方数,因为 9=3×3
- 整数 100 是完全平方数,因为 100=10×10
- 整数 2,5,8,10,55 都不是完全平方数
题目描述
给你一个长度为 n 的数列 a1,a2,…,an。
问:能否在数列中选出两个数使得它们的和是完全平方数?
即判断是否能够找到两个下标 i 和 j 满足:
- 1≤i<j≤n,且
- ai+aj 是完全平方数。
输入格式
第一行,一个整数 n(2≤n≤100)。
第二行,n 个整数 a1,a2,…,an,以空格分隔(1≤ai≤109)。
输出格式
如果能够在数列中选出两个数使得它们的和是完全平方数,输出一行 Yes;
否则,输出一行 No。
样例
5
2 3 4 8 11
No
6
5 3 7 6 11 8
Yes
说明/提示
样例 2 解释
- a1+a5=5+11=16=42 是完全平方数;
- a2+a4=3+6=9=32 也是完全平方数。