您的位置:首页 > 其它

51nod 1179:最大的最大公约数

2017-04-04 03:02 281 查看
[b]51nod 1179:最大的最大公约数[/b]

题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1179

题目大意:给出$n$个数,求两两最大公因数的最大值.

数论

套路题,参见http://www.cnblogs.com/barrier/p/6656410.html

代码如下:

#include <iostream>
#define N 1000000
using namespace std;
typedef long long ll;
ll n,t,vis[N+1],f[N+1];
int main(void){
std::ios::sync_with_stdio(false);
cin>>n;
for(int i=0;i<n;++i){
cin>>t;
vis[t]++;
}
for(ll i=1;i<=N;++i)
for(ll j=1;i*j<=N;++j)if(vis[i*j])
f[i]+=vis[i*j];
for(ll i=N;i>=0;--i)if(f[i]>1){
cout<<i;
return 0;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: