ACM训练题:Fadi and LCM

 首先LCM(a,b)=X,说明a*b>=X,当且仅当a,b互质时相等,题意要让a,b都尽可能小,最好让a*b=X,即a,b互质。原因如下:

最小公倍数由a、b中最大数量的质因数相乘得到。

如果a,b含有相同质因数,如果a中含质因数c的数量小于b,那么a去除所有c,显然lcm不变,这样将a、b中所有不必要的质因数去除后,显然a、b已经没有公共的质因数,于是a、b互质,要取max(a,b)最小,可以交换a、b中的质因数,这样可以找到最小的一对。

于是可以遍历sqrt(X),比较互质的因数即可。

AC代码:

# include <bits/stdc++.h>
using namespace std;
long long X,ansa,ansb=1e17;
int main(){
	cin>>X;
	for(long long i=1;i*i<=X;++i){
		if(X%i)
			continue;
		long long a=i,b=X/i;
		if(a*b/__gcd(a,b)==X&&b<ansb)
        {
            ansa=a;ansb=b;
        }
	}
    cout<<ansa<<" "<<ansb;
	return 0;
}

相关推荐

  1. 算法训练day57

    2024-02-05 07:20:01       23 阅读
  2. leetcode热100训练计划

    2024-02-05 07:20:01       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-05 07:20:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-05 07:20:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-05 07:20:01       82 阅读
  4. Python语言-面向对象

    2024-02-05 07:20:01       91 阅读

热门阅读

  1. 在建站和小程序方面,公司如何提升客户的体验

    2024-02-05 07:20:01       59 阅读
  2. 微信小程序封装wx.request以及小程序登录

    2024-02-05 07:20:01       58 阅读
  3. 【微信小程序】微信小程序开发:从入门到精通

    2024-02-05 07:20:01       54 阅读
  4. 26种设计模式之单例模式

    2024-02-05 07:20:01       45 阅读
  5. 一知半解,临时解决ajax跨域请求

    2024-02-05 07:20:01       51 阅读
  6. 后端返回给前端的数据格式有哪些?

    2024-02-05 07:20:01       53 阅读
  7. C 检查小端存储还是大端

    2024-02-05 07:20:01       45 阅读
  8. appium抓包总结

    2024-02-05 07:20:01       58 阅读
  9. ansible批量修改主机密码

    2024-02-05 07:20:01       52 阅读
  10. Leetcode 3027. Find the Number of Ways to Place People II

    2024-02-05 07:20:01       54 阅读