尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题

P1029 [NOIP 2001 普及组] 最大公约数和最小公倍数问题
📅 发布时间:2026/6/20 7:03:20
  • 最大公约数(即 gcd)和最小公倍数(即 lcm)的求法。

该题的关键点在于,两个数的积等于它们最大公约数和它们最小公倍数的积。公式表示为 \(a \times b = \text{gcd}(a,b) \times \text{lcm}(a,b)\)。设作为答案的两个数为 \(x\) 和 \(y\),我们要使它们同时满足以下三个条件,并统计这样的 \(x\) 和 \(y\) 的个数(\(P,Q\) 含义见题目描述):

  • \(x \times y = P \times Q\)
  • \(\text{gcd}(x,y) = P\)
  • \(\text{lcm}(x,y) = Q\)

我们可以枚举 \(x\),判断是否存在满足条件 1 的整数 \(y\)(即,\(x\) 能被 \(P,Q\) 的积整除)。满足第一个条件后,再分别判断当前的 \(x,y\) 是否能够同时满足另外两个条件即可。显然,这种做法会超时。

考虑优化这个程序。我们其实并不需要枚举两次,因为对于不同的 \(x,y\),交换它们的值一定可以得到另一组与之对应的解。因此,从 \(1\) 到 \(\sqrt{P \times Q}\) 枚举一遍,每发现一组答案就将 \(\text{ans}\) 的值加 \(2\) 即可。

一组 \(x,y\) 有对应解时有条件:\(x,y\) 的值不同。如果它们相同,交换后并不能得到与之对应的另一组数。
当 \(x = y\) 时,易得 \(x = y = \text{gcd}(x,y) = \text{lcm}(x,y)\) 所以要对此进行特判。若 \(P,Q\) 相等,这种情况就存在,\(\text{ans}\) 里要减去 \(1\)。

一些代码实现技巧

  • c++里有一个自带的求 \(\text{gcd}\) 的函数叫 __gcd 。
  • 当积相同且 \(\text{gcd}\) 相同时,\(\text{lcm}\) 也一定相同,因此只需判断是否满足一、二两个条件即可。

AC代码:

#include<bits/stdc++.h>
using namespace std;
long long m,n,ans;
int main(){cin>>m>>n;if(m==n) ans--;n*=m;//把两数的积存入n中for(long long i=1;i*i<=n;i++){if(n%i==0&&__gcd(i,n/i)==m) ans+=2;}cout<<ans;return 0;
}

公式速记:
\(a \times b = \text{gcd}(a,b) \times \text{lcm}(a,b)\)

相关新闻

  • SQL Server 并发控制 第四篇:Snapshot Isolation (SI) 和 Read Committed Snapshot Isolation (RCSI)
  • Java异常处理实战精要:构建稳定应用的基石
  • 142.环形链表 II

最新新闻

  • 品牌视觉操作系统:用AI实现可追溯、可迭代的VI设计
  • Python毕业设计-基于 Django 与协同过滤算法的图书推荐系统的设计与实现 融合协同过滤算法的智能图书推荐平台(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 2026年6月头部宠物皮肤科医院推荐,宠物眼科/猫咪体检/异宠/宠物皮肤/宠物骨科/猫咪绝育/宠物,宠物皮肤科专家找哪家 - 品牌推荐师
  • 深入解析MPC8360E/MPC8358E处理器接口电气特性与硬件设计实践
  • LLM嵌入技术在表格数据预测中的应用与实践
  • 渗透测试实战:CDN绕过与子域名爆破核心技术解析

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号