求最大素数

描述

给定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
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;
}

你可能感兴趣的:(算法入门,算法)