兔子发现了一个数字序列,于是开始研究这个序列。兔子觉得一个序列应该需要有一个命名,命名应该要与这个序列有关。由于兔子十分讨厌完全平方数,所以兔子开创了一个新的命名方式:这个序列中最大的不是完全平方数的数字就是他的名字。
现在兔子有一个序列,想要知道这个序列的名字是什么。
第一行一个整数 n,表示序列的长度。
第二行有 n 个整数 ai,表示序列中的 n 个数分别是多少。
输出仅一行,表示这个序列的名字,也就是这个序列中最大的非完全平方数。
2 4 2
2
8 1 576 2 8 32 64 4 16
32
对于 50%的数据
n = 1
对于 100%的数据
1≤ n ≤ 1000,1 ≤ ai ≤ 1000
数据保证至少有一个非完全平方数
#include <math.h>
#include <stdio.h>
int main() {
int n;
scanf("%d",&n);
int arr[n],max=0;
for (int i=0;i<n;i++) {
scanf("%d",&arr[i]);
if(sqrt(arr[i])!=(int)sqrt(arr[i])){
if (arr[i]>max) {
max=arr[i];
}
}
}
printf("%d",max);
return 0;
} #include<stdio.h>
#include<math.h>
int Max_sqrt(int a)
{
int i = 0;
int input = 0;
int max = 0;
int vale = 0;
for(i=0;i<a;i++)
{
scanf("%d ",&input);
vale = (int)sqrt(input);
if(vale * vale != input && input > max)
{
max = input;
}
}
return max;
}
int main()
{
int a = 0;
scanf("%d\n",&a);
int ret = Max_sqrt(a);
printf("%d",ret);
return 0;
} #include <stdio.h>
#include <math.h>
int main() {
int a,b[1000];
scanf("%d",&a);
for (int x=0; x<a; x++) {
scanf("%d",&b[x]);
}
//判断数组中每个数是否能开平方,不能则记入在数组中并获得这个数组最后一个元素的下标
int shi=0,sum[1000],i=0;
for (int x=0; x<a; x++) {
for (int y=0; y<b[x]; y++) {//从0的平方到(元素-1)平方依次对比是否与元素相等
if (pow(y, 2)==b[x]) {
shi=1;
break;
}
}
if (shi==0) { //无法开根的数记入下来
sum[i]=b[x];
i++;
}
shi=0;
}
i--;
//将数组中的元素转换成从小到大的顺序
int zhongzhuan=0,tou=0;
for (int x=0; x<=i; x++) {
tou=0;
for (int y=1; y<=i; y++) {
if (sum[tou]>sum[tou+1]) {
zhongzhuan=sum[tou];
sum[tou]=sum[tou+1];
sum[tou+1]=zhongzhuan;
}
tou++;
}
}
printf("%d",sum[i]);
return 0;
} #include <math.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
//判断释放是完全平方数
bool IsPerfectSquare(int n)
{
double a = sqrt(n);
//b必须是double型,比较的时候会类型转换
double b = (int)sqrt(n);
if(a == b)
return true;
return false;
}
int Traverse()
{
int n;
scanf("%d", &n);
int* a = malloc(sizeof(int) * n);
int i = 0;
while (i < n)
{
scanf("%d", &a[i]);
i++;
}
int MAX = a[0];
for(int i = 0; i < n; i++)
{
if(!IsPerfectSquare(a[i]) && MAX > a[i])
MAX = a[i];
}
free(a);
return MAX;
}
int main()
{
int r = Traverse();
printf("%d\n", r);
return 0;
} #include <stdio.h>
#include <math.h>
#define MAX 1000
int find_name(int n, int *num){
int temp[n];
int count = 0;
//如果一个数开方后的乘积还是原来的数,那么这个数就是完全平方数
for (int i = 0; i < n; i++) {
int root = sqrt(num[i]);
if (root * root != num[i]){
temp[count++] = num[i];
}
}
//取最大值
int max = temp[0];
for (int i = 1; i < count; i++) {
if (max < temp[i]){
int tmp = max;
max = temp[i];
temp[i] = tmp;
}
}
return max;
}
int main() {
int n;
int num[MAX];
scanf("%d",&n);
for (int i = 0; i < n; i++) {
scanf("\n%d",&num[i]);
}
int ret = find_name(n, num);
printf("%d",ret);
return 0;
}
//
// Created by Wilbur Lee on 14/7/2024.
//
#include <stdio.h>
#include<math.h>
int square(int n,int *arr)
{
int i,max = 0;
for(i=0;i<n;i++)
{
int x = 0;
x = sqrt(arr[i]);
if(arr[i]==pow(x,2))
{
continue;
}
else
{
if(arr[i]>max)
{
max = arr[i];
}
}
}
return max;
}
int main()
{
int n;
scanf("%d",&n);
int arr[n];
int i;
for(i=0;i<n;i++)
{
scanf("%d ",arr+i);
}
int ret = square(n,arr);
printf("%d",ret);
return 0;
} #include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
int main() {
int n = 0;
scanf("%d", &n);
float *ar = (float *)malloc(n * sizeof(float));//定义动态数组ar
for (int i = 0; i < n; i++)
{
scanf("%f", &ar[i]);//循环输入数据
}
for (int i = 0; i < n; i++)//冒泡排序;将数组从小到大排列
{
for (int j = i + 1; j < n; j++)
{
if (ar[i] > ar[j])
{
int temp = ar[i];
ar[i] = ar[j];
ar[j] = temp;
}
}
}
for (int i = n-1; i >= 0; i--)//从最大数开始判断,不是完全平方数则输出,结束程序运行
{
double a = sqrt(ar[i]);
if (a != (int)a)
{
printf("%d", (int)ar[i]);
break;
}
}
return 0;
} #include <stdio.h>
#include <math.h>
int judge(float x)
{
return (int)sqrt(x)==sqrt(x)?0:1;
}
int main() {
int n,max=0;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]>max&&judge((float)a[i]))
{
max=a[i];
}
}
printf("%d\n",max);
return 0;
} #include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
unsigned int n, *a, tmp;
int i, j;
scanf("%d\n", &n);
a = (unsigned int*)calloc(n, sizeof(unsigned int));
for (i = 0; i < n; i++)
scanf("%u", a + i);
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
if (*(a + i) < * (a + j)) {
tmp = *(a + i);
*(a + i) = *(a + j);
*(a + j) = tmp;
}
}
}
for (i = 0; i < n; i++) {
tmp = (unsigned int)sqrt(*(a + i));
if (*(a + i) != (tmp * tmp)) {
printf("%u\n", *(a + i));
return 0;
}
}
return 0;
}
#include<stdio.h>
#include<math.h>
int main() {
int n = 0, input = 0, max_ret = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &input);
if (input != pow((int)sqrt(input), 2) && input > max_ret)
max_ret = input;
}
printf("%d\n", max_ret);
return 0;
} #include <stdio.h>
#include <math.h>
int max_in_array(int a[], int length)
{
int max = 0;
for(int i = 0; i < length; i++)
{
if(max < a[i])
max = a[i];
}
return max;
}
int Is_perfect_square(int a)
{
double n;
n = sqrt(a);
if(n-(int)n == 0)
return 1;
else
return 0;
}
int main()
{
int length_n = 0, length_m = 0, n[1000] = {0}, m[1000] = {0};
scanf("%d", &length_n);
for(int i = 0; i < length_n; i++)
scanf("%d", &n[i]);
for(int i = 0; i < length_n; i++)
{
if(Is_perfect_square(n[i]) == 0)
{
m[length_m] = n[i];
length_m++;
}
}
printf("%d", max_in_array(m, length_m));
return 0;
} #include <stdio.h>
#include <math.h>
int main(){
int max = -1, len, n;
scanf("%d", &len);
for(int i = 0; i < len; i++){
scanf("%d", &n);
max = (pow((int)sqrt(n), 2) != n) && max < n? n : max;
}
printf("%d", max);
return 0;
} #include <stdio.h>
#include <math.h>
int panduan(int n);
int main()
{
int n;
int max=0;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(panduan(a[i])==0)
{
if(a[i]>max)
max=a[i];
}
}
printf("%d",max);
return 0;
}
int panduan(int n)
{
if(sqrt(n)==(int)sqrt(n))
return 1;
return 0;
}
大家看看