HDU - 5207(素数筛法判断)
2015-04-18 22:09
281 查看
最多1e5个 在1e5以内的数,求两个数使得他们最大公因子最大。
用素数筛法,倒叙枚举公因子,然后统计所有是公因子倍数的数的个数。
用素数筛法,倒叙枚举公因子,然后统计所有是公因子倍数的数的个数。
#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; const int maxn = 1e5+100; int a[maxn],n; int main() { int kase=1; int T; scanf("%d",&T); while(T--){ scanf("%d",&n); memset(a,0,sizeof(a)); int max_=0; int res =0; for(int i=1;i<=n;i++){ int x; scanf("%d",&x); max_=max(max_,x); a[x]++; } for(int i=max_;i>=1;i--){ int cnt = 0; for(int j=i;j<=maxn-100;j+=i){ if(j>max_) break; cnt+=a[j]; if(cnt >=2) { res=i; break; } } if(cnt>=2) break; } printf("Case #%d: %d\n",kase++,res); } return 0; }
相关文章推荐
- HDU-2161,判断是否为素数,素数筛法
- HDU 2444 The Accomodation of Students 判断二分图 + 最大匹配
- HDU 4305 Lighting(生成树计数+点在线段判断)
- hdu 3345 War Chess(BFS 判断条件稍多,有陷阱)
- hdu 2444 The Accomodation of Students 判断是否为二分图+最大匹配
- hdu 3394 (无向图求块 判断环)
- HDU 1180 诡异的楼梯(BFS+奇偶步数判断)
- HDU 2444 The Accomodation of Students【二分图判断+最大匹配】
- HDU 4751 Divide Groups(二分图判断)
- hdu 1558 判断线段相交 + 并查集
- hdu 3790 最短路径问题(Dijkstra多条件判断)
- HDU 1824 Let's go home (2-SAT判断)
- HDU 2054 判断大数是否相等
- HDU 1147 Pick-up sticks (叉乘判断线段相交)
- HDU 3367 Pseudoforest 并查集求最大生成树及判断环
- hdu Phone List 字典树的前缀判断
- hdu 1272 小希的迷宫(并查集判断回路和是否连通)
- HDU 2444 The Accomodation of Students(判断是否是二分图)
- HDU 2444 The Accomodation of Students(二分图判断+最大二分匹配)
- hdu 3081 Marriage Match II(二分最大流+并查集+判断满流)