| 题目链接 | 难度等级 | 完成状态 | 完成分数 | 最后编辑时间 | 需要注意 |
|---|---|---|---|---|---|
| Greatest Greatest Common Divisor | ★★☆☆☆ | 答案正确 | 100 | 2015-2-21 16:21:27 | 无 |
(AC 680)
给出n个数{}中两两之间最大公约数之中最大的一个。
| 499.cpp代码已折叠
展开折叠内容
|
|---|
#include<cstdio>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
#define si(n) scanf("%d",&n)
#define dsi(n) int n;si(n)
#define f(i,n) for(int i=1;i<=n;++i)
#define fi(i,p,n) for(int i=p;i<=n;++i)
#define fd(i,n) for(int i=n;i!=0;--i)
#define fdi(i,p,n) for(int i=n;i>=p;--i)
int countA[1000010]={},maxA=0;
int main()
{
dsi(n);
f(i,n)
{
dsi(a);
++countA[a];
maxA=max(maxA,a);
}
fd(i,maxA)
for(int j=1,o=0;i*j<=maxA;++j)
{
o+=countA[i*j];
if(o>=2)
{
cout<<i<<endl;
return 0;
}
}
}
|