产生素数表解决
View Code
#include <stdio.h>
#include<math.h>
bool su[20009];
int suu[3009];
int main()
{
int n,i,j,add=0;
for(i=2;i<=20000;i++)
su[i]=0;
for(i=2;i<=10000;i++)
{
for(j=2;j*i<=20000;j++)
{
su[i*j]=1;
}
}
for(i=1;i<=20000;i++)
{
if(su[i]==0)
{
suu[add]=i;
add++;
}
}//产生素数表
while(scanf("%d",&n)!=EOF)
{
int rt;
int max=0;
for(i=1;i<=n;i++)
{
int t;
scanf("%d",&t);
for(j=0;suu[j]<=t;j++)
{
if(t%suu[j]==0)
{
if(max<suu[j])
{
max=suu[j];
rt=t;
}
}
}
}
printf("%d\n",rt);
}
}