求给定数里的数的质数最大——pku3048

产生素数表解决
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);
}
}
原文地址:https://www.cnblogs.com/huhuuu/p/2001564.html