题目描述
描述
兔子发现了一个数字序列,于是开始研究这个序列。兔子觉得一个序列应该需要有一个命名,命名应该要与这个序列有关。由于兔子十分讨厌完全平方数,所以兔子开创了一个新的命名方式:这个序列中最大的不是完全平方数的数字就是他的名字。
现在兔子有一个序列,想要知道这个序列的名字是什么。
输入描述:
第一行一个整数 n,表示序列的长度。
第二行有 n 个整数 ai,表示序列中的 n 个数分别是多少。
输出描述:
输出仅一行,表示这个序列的名字,也就是这个序列中最大的非完全平方数。
思路分析
首先介绍一下非完全平方数的概念
非完全平方数是指不能表示为一个整数的平方的数。例如,2、3、5、6、7、8、10等都是非完全平方数。
根据它的性质,我们可以利用该数的平方根的平方如果等于它本身,则就是是一个完全平方数,否则就是非完全平方数。
遍历完整个数组后,将最大的满足该条件的值输出即可。
#include <stdio.h>
#include<math.h>
int main() {
int n=0;
int a,max=0;
int x=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a);
x=sqrt(a);
if(a==pow(x,2)) continue;
else
{
if(a>max) max=a;
}
}
printf("%d",max);
return 0;
}