HDU 5207 Greatest Greatest Common Divisor
来源:互联网 发布:数据库流程 编辑:程序博客网 时间:2024/05/16 00:32
Greatest Greatest Common Divisor
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 604 Accepted Submission(s): 276
Problem Description
Pick two numbers ai,aj(i≠j) from a sequence to maximize the value of their greatest common divisor.
Input
Multiple test cases. In the first line there is an integerT , indicating the number of test cases. For each test cases, the first line contains an integern , the size of the sequence. Next line contains n numbers, from a1 to an .1≤T≤100,2≤n≤105,1≤ai≤105 . The case for n≥104 is no more than 10 .
Output
For each test case, output one line. The output format is Case #x :ans ,x is the case number, starting from 1 ,ans is the maximum value of greatest common divisor.
Sample Input
241 2 3 433 6 9
Sample Output
Case #1: 2Case #2: 3
Source
BestCoder Round #38 ($)
题意 给你n个数,求出n个数里面 选择两个数,使得公约数最大。
直接暴力显然是不行的 复杂度高达O(n^2)。
可以用筛法选出1到100000内所有数的因子,将它存入一个数组里面。
只有这个数组大于等于2则说明这个数就和其他数有公约数,可以从1e5往前暴力,则可以选出最大的公约数是多少。
#include <iostream>#include <cstring>#include <algorithm>#include <cstring>#include <stdio.h>using namespace std;const int MAXN=1e5+1;int a[100005][150];//第一维是数的大小,第二维是因子的个数。int b[100005];int c[100005];int main(){ int t,i,j; for(i=1; i<MAXN; i++) for(j=i; j<MAXN; j+=i) { a[j][b[j]++]=i; //暴力出所有的数的因子。 } cin>>t; int Case=0; while(t--) { memset(c,0,sizeof(c)); int n,x; cin>>n; while(n--) { cin>>x; for(i=0; i<b[x]; i++) //b[x]是因子的个数。 c[a[x][i]]++; //出现的数它的因子个数加一。 } cout<<"Case"<<" "<<"#"<<++Case<<": "; for(i=MAXN-1; i>0; i--) { if(c[i]>=2) //找到则输出。。 { cout<<i<<endl; break; } } } return 0;}
0 0
- HDU 5207 Greatest Greatest Common Divisor
- 【瞎搞】 HDU 5207 Greatest Greatest Common Divisor
- Greatest Greatest Common Divisor hdu 5207
- hdu 5207 Greatest Greatest Common Divisor
- hdu 5207 Greatest Greatest Common Divisor
- HDU 5207 Greatest Greatest Common Divisor
- HDU 5207Greatest Greatest Common Divisor
- HDU ACM 5207 Greatest Greatest Common Divisor
- HDU 5207 Greatest Greatest Common Divisor
- HDU 5207 Greatest Greatest Common Divisor
- Greatest Greatest Common Divisor
- Hdu 5207 Greatest Greatest Common Divisor(数论)
- hdu 5207 Greatest Greatest Common Divisor(数论)
- HDU 5207 Greatest Greatest Common Divisor(暴力)
- hdu 5207 Greatest Greatest Common Divisor【筛法】【思维】
- hdu 5210 Greatest Greatest Common Divisor
- Greatest Greatest Common Divisor HD5207
- Greatest common divisor
- developer_problem
- 关于手机端搜索键的监听事件
- 单例模式的常见应用场景
- JVM内存模型及垃圾收集策略解析
- 论测试在软件体系的地位
- HDU 5207 Greatest Greatest Common Divisor
- ASP.NET中使用JSON方便实现前台与后台的数据交换
- C++智能指针auto_ptr源码完全解析---以微软auto_ptr为例来探讨auto_ptr的用法
- 重写
- HTML5表单验证的例子
- PHP时间函数date()详解
- HDU 2121 Ice_cream’s world II (不定根最小树形图)
- 数组copy方法
- JAVA MD5加密的两种方法