51nod - 1179 - 最大的最大公约数 - 枚举
2024-09-30 20:46:24
因为 \(\sum\limits_{i=1}^{n}\lfloor\frac{n}{i}\rfloor=O(nlogn)\)
所以直接暴力就可以了。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;
int a[50005];
int cnt[1000005]= {};
int main()
{
#ifdef local
freopen("a.txt","r",stdin);
#endif // local
scanf("%d",&n);
for(int i=0; i<n; i++)
{
scanf("%d",&a[i]);
cnt[a[i]]++;
}
int maxi=0;
for(int i=1; i<=1000000; i++)
{
int c=0;
for(int j=i; j<=1000000; j+=i)
{
c+=cnt[j];
if(c>=2)
maxi=i;
}
}
printf("%d\n",maxi);
return 0;
}
还可以记录出现过的最大的a[i],反向枚举因子,及时退出。
但是没必要。
最新文章
- 与你相遇好幸运,Waterline初遇
- sql 返回xml类型的数据
- Linux面试基础题-2
- 实现MySQL的Replication
- PL/pgSQL多输出参数例子
- HW4.44
- 【HDU4391】【块状链表】Paint The Wall
- zoj 3462
- C库专题(Day1)
- 表格无边框,有内框,在table嵌套时,防止出现重复边线
- C#精华(文章3版本)笔记
- Laravel框架使用查询构造器实现CURD
- iOS 播放音频的几种方法
- kmspico_setup.exe运行提示系统资源不足,无法完成请求的服务
- PyQt5目录
- jQuery获取子元素个数的方法
- Android.bp 添加宏开关【转】
- Hive 数据类型
- python selenium 常见问题列表
- Awk 从入门到放弃(3) —- 内置变量