#include <math.h> #include <stdio.h> #include <stdlib.h> int func(int n); int sort(const void* a, const void* b); int main() { int n, i, max; max = 0; scanf("%d", &n); int* arr = (int*)malloc(n * sizeof(int)); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } qsort(arr, n, sizeof(int), sort); for (i = 0; i < n; i++) { if (func(arr[i]) == 0) { if (arr[i] > max) max = arr[i]; } } printf("%d", max); free(arr); return 0; } int func(int n) { if (sqrt(n) == (int)sqrt( n)) // 3*3 = 9 9 = 3*3 sqrt(9)==3 那么就是完全平方数 return 1; else return 0; } int sort(const void* a, const void* b) { return (*(int*)b) - (*(int*)a); }