Description
描述
给你一个整数集合A(无重复元素),如果x,y都属于A,且y=xx,那么组成一个数对,请找出这个集合中满足条件的数对的个数。比如说集合A={2,3,4},则只有4=22,则答案为1。
输入
每个样例占2行,第一行为一个非负整数n,n<=1000,为集合中元素的个数,如果n为0则输入结束。第二行为n个整数,为集合的元素,所有的元素为非负整数,且<=100,000,000,两个整数之间有一个空格隔开。
输出
每行输出一个样例的结果。
Sample Input
3
2 3 4
5
3 36 5 9 6
0
Sample Output
1
2
思路 把输入的数组中每个元素平方后与数组内其他元素比较,如果相等则count++,最后输出count即可
#include<stdio.h>
int main(){
int n,i,j;
while(scanf("%d",&n),n!=0){
int a[n];
int count=0;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(a[i]*a[i]==a[j]){
count++;
}
}
}
printf("%d\n",count);
}
}