单点时限: 2.0 sec

内存限制: 512 MB

一个数组a,现在你需要删除某一项使得它们的gcd最大,求出这个最大值。

输入格式

第一行输入一个正整数n,表示数组的大小,接下来一行n个数,第i个数为ai。(2≤n≤105,1≤ai≤109)

输出格式

输出删除掉某个数以后的gcd的最大值。

样例

input
4
2 4 8 1
output
2
input
4
1 2 3 4
output
1

提示

样例一:删除第四个元素后,2,4,8的最大公因子为2。
样例二:无论删除哪一个,最大公因子都为1。

 思路:一个前缀GCD和一个后缀GCD当删除某一个数时,然后遍历删除每一个数,比较当前GCD ,,并记录

#include<iostream>
#include<algorithm>
#define N 100010
using namespace std;
typedef long long ll; ll arr[N];
ll pre[N]={},od[N]={};//前缀与后缀
int main(){ int n;
cin>>n; for(int i=;i<=n;i++){
cin>>arr[i];
} pre[]=arr[];
od[n]=arr[n]; for(int i=;i<=n;i++){
pre[i]=__gcd(pre[i-],arr[i]);//前缀gcd
    }

    for(int i=n-;i>;i--){
od[i]=__gcd(od[i+],arr[i]);//后缀gcd
} ll max1=;
ll p;
for(int i=;i<=n;i++){
if(i==){
p=od[i+];
}
else {
p=__gcd(pre[i-],od[i+]);//pre[i-1]指的是前i-1个个数的gcd,od[i+1]指的是从i+1到第N个数的gcd
if(p>max1){
max1=p;
}
}
}
cout<<max1<<endl;
return ;
}

最新文章

  1. 总结整理 -- python系列
  2. [No00000D]word如何批量删除超链接 怎么去掉网址保留文字
  3. SpringMVC利用拦截器防止SQL注入
  4. swift 中delegate的使用
  5. 获取hadoop的源码和通过eclipse关联hadoop的源码
  6. PHP数据类型和常量
  7. 利用 Composer 完善自己的 PHP 框架(一)——视图装载
  8. 在Ubuntu中USB连接手机调试
  9. 【转】foxmail突然打不开了,双击没反应,怎么回事呀
  10. java里面的equals和hashcode的总结
  11. C# Chart 折线图 多条数据展示
  12. 2014年去哪儿网笔试题--有两个文件context.txt和words.conf,请尝试将他们合并成为一段文字,并打印出来。
  13. uva 10891 Game of Sum(区间dp)
  14. callback用法简介
  15. Linux在什么样的从脚本文件数据库sh格式改变sql格式
  16. 工控中的windows
  17. Python标准库--Scope
  18. 如何提高windows的性能
  19. 使用JAXB解析xml文件(一)
  20. python 正则指北之我的总结

热门文章

  1. Log4Net读取XML配置文件及在代码中完成添加Logger操作
  2. effective-java学习笔记---优先使用泛型方法30
  3. 给Linux命令设置别名的几个步骤
  4. coding++ :Layui-form 表单模块
  5. 面试官:ThreadLocal的应用场景和注意事项有哪些?
  6. leetcode并发题解
  7. [noip2016]蚯蚓&lt;单调队列+模拟&gt;
  8. USCOSII
  9. 各种杂记关于Linux
  10. VUE开发之异常篇