1 条题解

  • 0
    @ 2025-2-21 20:03:47

    C++ :

    #define Max(a,b)((a)>(b)?(a):(b))
    
    #include<cstdio>
    
    using namespace std;
    
    bool v[1000005];
    int n,a[10005],Maxn,ans;
    int tot,k,cnt,b,c;
    
    int gcd(int a,int b)
    {
    	if(b==0)return a;
    	return gcd(b,a%b);
    }
    
    void work1()
    {
    	for(int i=1;i<=n;i++){
    		if(a[i]<=ans)continue;
    		for(int j=i+1;j<=n;j++){
    			if(a[j]<=ans)continue;
    			k=gcd(a[i],a[j]);
    			if(k>ans){
    				b=a[i];c=a[j];
    				ans=k;
    			}
    		}
    	}printf("%d",ans);
    }
    
    void work2()
    {
    	for(int i=Maxn;i>=1;i--){
    		cnt=0;
    		for(int j=1;i*j<=Maxn;j++)
    		    if(v[i*j]==1)
    			{
    				cnt++;
    				if(cnt>=2){
    					printf("%d",i);
    					return;
    				}
    		    }
    	}
    }
    
    int main()
    {
    	scanf("%d",&n);ans=1;Maxn=0;
    	for(int i=1;i<=n;i++){
    		scanf("%d",&a[i]);
    		v[a[i]]=1;Maxn=Max(Maxn,a[i]);
     	}
    	work2();
    }
    
    
    • 1

    信息

    ID
    1031
    时间
    1000ms
    内存
    256MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者