You are given an array a consisting of n integers a1,a2,…,an
Your problem is to find such pair of indices i,j  (1≤i<j≤n ) that lcm(ai,aj) is minimum possible.
lcm(x,y)  is the least common multiple of x and y (minimum positive number such that both  x and  y are divisors of this number).
Input
The first line of the input contains one integer  n (2≤n≤106 ) — the number of elements in a .
The second line of the input contains nn integers a1,a2,…,an (1≤ai≤107 ), where ai  is the  i-th element of a .
Output
Print two integers  i and  j (1≤i<j≤n ) such that the value of lcm(ai,aj) is minimum among all valid pairs i,j  If there are multiple answers, you can print any.
5
2 4 8 3 6
1 2
5
5 2 11 3 7
2 4
6
2 5 10 1 10 2
1 4
优美的暴力

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e7 + 5;
typedef long long ll;
const ll inf = 0x3f3f3f3f3f3f3f3f;
int n, x, p1, p2, vis[maxn], a[maxn];
ll q[maxn];
int gcd(int a,int b){if(!b)return a;return gcd(b,a%b);
}
int main(){while(scanf("%d",&n)!=EOF){ll ans=inf;int l,r;memset(vis,0,sizeof(vis));memset(a,0,sizeof(a));memset(q,0,sizeof(q));for(int i=1;i<=n;++i){scanf("%d",&x);a[i]=x;if(vis[x]&&x<ans){ans=x;l=vis[x];r=i;}vis[x]=i;}sort(a+1,a+n+1);int m=unique(a+1,a+n+1)-a-1;for(int i=1;i<=a[m];++i){int cur=-1;for(int j=i;j<maxn;j+=i){if(vis[j]) {q[++cur]=j;if(cur>=1)break;}}  if(cur>=1){ll d= gcd(q[0],q[1]);  if(ans>q[0]/d*q[1]){ans= q[0]/d*q[1];l=vis[q[0]];r=vis[q[1]];}}}if(l>r)swap(l,r);cout<<l<<' '<<r<<endl;}return 0;
} 

cf552 G Minimum Possible LCMn个数,求最小得一对lcm相关推荐

  1. 求两个数的最小公约数和最小公倍数

    题目: 求两个数的最小公约数和最小公倍数 思路: 求最大公约数: 欧几里得在其<几何原本>中提出的欧几里得算法,有称辗转相除法,  具体做法是如果q和r分别是m除以n的商及玉树,m=nq+ ...

  2. 数组求最大公约数c语言,C语言辗转相除法求2个数的最小公约数

    辗转相除法最大的用途就是用来求两个数的最大公约数. 用(a,b)来表示a和b的最大公约数. 有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c). (证明过程请参考其它资料) 例 ...

  3. c语言求两个数的最小公倍数辗转相除法,C语言辗转相除法求2个数的最小公约数...

    辗转相除法最大的用途就是用来求两个数的最大公约数. 用(a,b)来表示a和b的最大公约数. 有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c). (证明过程请参考其它资料) 例 ...

  4. 求一个数的最小素数因子序列

    ** 求一个数的最小素数因子序列 ** 如 120 = 22235,其中2, 2,2,3,5就是120 的最小素数因子 90 = 233*5 ,其中2,3,3,5 就是90 的最小素数因子 具体思路是 ...

  5. python求三个数中最小(大)的元素

    求最小: def getThreeNumberMin(x,y,z):min=x if x<y else ymin=min if min<z else zreturn min a=getTh ...

  6. 求一个数的最小素因子外加快速分解质因子

    这种方法使用与数据小于1e7, 这种适用于分解1到n所有数的质因子,而且打印出来是从小到大排好序的 首先找到每个数的最小质因子,不停的除以最小素因子,只到x==1 如果是分解单个还是根号n复杂度的更好 ...

  7. 【算法】深度优先搜索遍历的应用 设计算法以求解无向图G的连通分量的个数和无向图G的边数

    应用一 设计算法以求解无向图G的连通分量的个数 图示: 深度遍历基本算法dfs(v0)如下 : void dfs(int v0) { visite(v0); visited[v0]=TRUE;w=fi ...

  8. 一种更简单的求最小平方均值函数(MSE)的方法 -- 梯度下降法。

    在上一篇博客中我们通过解析解法算出来了 但是上面公式中的对称阵是N维乘以N维的,复杂度为O(n*n*n),虽然很精准但是很慢. 为此我们引入梯度下降法 我们首先大致画出MSE的图像,MSE是一个开口向 ...

  9. 求最小码距 (10 分)

    求最小码距 (10 分) 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 题目描述 计算机组成原理老师给小明出了一道求最小码距的题目, 有以下由1个字节组成的合法编码集{0xA ...

最新文章

  1. MATLAB 半球面
  2. linux c socket选项:SO_ERROR
  3. 学习python用哪个app-Python和R:学哪个好?
  4. 深度神经网络(DNN)损失函数和激活函数的选择
  5. 光影的魔法!Cocos Creator 实现屏幕空间的环境光遮蔽(SSAO)
  6. 使用MiniProfiler跟踪MVC + EF + Bootstrap 2 权限管理系统的性能消耗
  7. 如何使用SAP CRM中间件下载customer material数据
  8. 【技术解决方案】音视频同步策略分析并计算出当前音频播放的pts
  9. 前端学习(2021)vue之电商管理系统电商系统之合并goodlist的分支
  10. 安装linux出现基础系统出错,Linux系统出错提示信息详解
  11. 一键设置mac显示选项_如何通过关闭浏览器中的一个选项卡将Mac上的电池寿命延长一倍...
  12. java8获取当前时间并格式化
  13. 8成功的用户界面特性
  14. 基于visual Studio2013解决C语言竞赛题之0203格式化输出
  15. 前端页面加载速度优化---Ngnix之GZIP压缩
  16. mariadb配置主从同步遇到的问题
  17. 用python实现关机程序_python实现重启关机程序
  18. JAVA博雅楼自习室预约系统计算机毕业设计Mybatis+系统+数据库+调试部署
  19. cp 出现 omitting directory
  20. (转)一些个人感悟(2008)

热门文章

  1. Java中Dom解析XML
  2. 《Pro Ogre 3D Programming》 读书笔记 之 第七章 资源管理(转)
  3. Windows Mobile和Wince(Windows Embedded CE)的字符集问题
  4. PHP 安全问题入门:10 个常见安全问题 + 实例讲解
  5. ansible2.4 api调用
  6. vue2.0小示例一个~~新鲜出炉哦。欢迎大家留言
  7. SQL Server中的锁的简单学习
  8. js 正则学习小记之匹配字符串
  9. WebDev.WebServer 学习
  10. Java动态代理的应用