试题名称:完全平方数
题目描述:小杨同学有一个包含 个非负整数的序列 ,他想要知道其中有多少对下标组合 ( ),使得 是完全平方数。 如果 是完全平方数,则存在非负整数 使得 。 3.2.2 输入格式 第一行一个非负整数 ,表示非负整数个数。 第二行包含 个非负整数 ,表示序列 包含的非负整数。 3.2.3 输出格式 输出一个非负整数,表示和是完全平方数的非负整数对数。
上代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
int a[10086];
for(int i =0; i < n ; i++){
cin >> a[i];
}
int sum = 0;
for(int i = 0; i < n ; i++){
for(int j = i + 1; j < n; j++){
int s = a[i] + a[j];
for(int k = 0; k < 10086; k++){
if (k * k == s){
sum ++;
}
if (k * k > s){
break;
}
}
}
}
cout << sum;
return 0;
}