sgu499

来源:互联网 发布:广告优化师 编辑:程序博客网 时间:2024/05/20 13:07
//暴力求解复杂度为O(n(n-1)/2)//假设所有输入中最大值为maxp,枚举i=maxp to 1(从大到小枚举),//如果i是某两个数的约数,则i是所有数的最大最大公约数。//复杂度 ??#include<stdio.h>  #include<string.h>  #define maxn 1000005   int num[maxn];  int main()  {  int n,i,j,k;  int maxp=1;scanf("%d",&n) ;  memset(num,0,sizeof(num));  for(i=1;i<=n;i++)  {  scanf("%d",&k);   num[k]++;  if(k>maxp) maxp = k;}  for(i=maxp;i>=1;i--)  {  k=0;  for(j=i;j<=maxp;j+=i)  {  if(num[j]) k+=num[j];  if(k>1)  {  printf("%d\n",i);  return 0;}  }  }  return 0;  }  

0 0