第2 - N + 1行:每行1个数,对应输入的正整数.(1 <= S i i <= 1000000)
4 9 15 25 16
5
#include <stdio.h>
#include <string.h>
#define maxn 1000000+10
int num[maxn];
int book[maxn];
int n,m;
int main()
{
while(~scanf("%d",&n))
{
memset(num,0,sizeof(num));
int max1=0,ans,k=1;
for(int i=0; i<n; i++)
{
scanf("%d",&m);
book[m]++;
if(m>max1)
max1=m;
}
for(int i=max1; i>=1; i--)
{
ans=0;
for(int j=i; j<=max1; j+=i)
{
ans+=book[j];
if(ans>=2)
{
k=i;
break;
}
}
if(ans>=2)
break;
}
printf("%d\n",k);
}
return 0;
}