描述
给定n(n≤100)个正整数,所有正整数均≤1000000;求其中最大的那个素数。
例如给定序列: 4 5 6 2 3,最大素数为:5
给定序列: 6 7 3 4 5 , 最大素数为:7
给定序列: 68 71 99 12 19 23 35 , 最大素数为: 71
给定序列:14 5 69 51 89 31, 最大素数为:89
格式
输入格式
输入为两行。第一行是一个正整数n,表示有多少个数据。第二行是n个正整数组成的序列。
输出格式
输出一个正整数,是上述序列中最大的那个素数。如果序列中没有素数,则输出0。
样例
输入样例
9
6668 7703 9137 3056 7953 1734 1600 1667 1909
输出样例
9137
#include<stdio.h>
int prime(int n){ //素数判断 传入参数
int i;
for( i=2; i< n; i++){
if(n%i == 0)
break; //如果不能整除,跳出循环,说明不是素数,此时i 肯定小于n
}
if(i>= n) // 如果i >=n 意思是上面的for循环完整跑完一遍都没有可以整除的数,所以是素数
return 1;
else
return 0;
}
int main ()
{
int n;
scanf("%d",&n);
int a[n]; //定义数组,数组长度为你输入的n
int max = 0; //用来存储最大的素数,没有素数就是初始值0
for(int i=0; i< n; i++){ //这个循环是输入n 个整数
scanf(" %d",&a[i]);
if(prime(a[i])){ //对每一个整数进行判断是不是素数
if(max < a[i])
max = a[i];
}
}
printf("%d",max);
return 0;
}