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

news/2025/11/3 19:17:26/文章来源:https://www.cnblogs.com/luocont/p/19187982
  • 最大公约数(即 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)\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/954821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server 并发控制 第四篇:Snapshot Isolation (SI) 和 Read Committed Snapshot Isolation (RCSI)

乐观控制模式假定阻塞很少,快照隔离通过使用行版本控制来避免大多数锁定和阻塞。当数据被修改时,受影响行的已提交版本会被复制到 tempdb 并赋予版本号,此操作称为写时复制 (Copy on Write),并用于所有的插入、更新…

godot 描边插件

1:https://github.com/Magodra/GlowBorderEffect 2: outline.gdshader 不支持半透明:shader_type spatial; render_mode unshaded;/*Normal/Depth outline shader. Apply to nodes as a next pass shader texture.In…

对递归两层含义的理解

对递归两层含义的理解目录背景知识Definition从堆栈的角度理解递归缺点和For循环的区别总结Reference背景知识 先了解一下内存结构,但这个不是必须的。Definition 递归是一个循环结构,主要用来处理需要循环执行的任务…

怎么在现有App里融入AI对话能力

怎么在现有App里融入AI对话能力在数字化交互日益重要的今天,用户对App的智能化期望越来越高。尤其是在社交、电商、客服等领域,AI对话能力不仅能显著提升用户体验,还能有效降低运营成本。 但对于大多数开发团队而言…

DFS 序 O(1) 求 LCA

抛弃欧拉序,拥抱DFN。更新日志 2025/11/03:开工。思路 查询 \((dfn_u,dfn_v]\) 最小深度的节点的父亲即可。读者自证不难。

@pytest.fixture和setup/teardown

一.定义fixture 定义:@pytest.fixture是 Pytest 中用于定义​​测试夹具(Fixture)​​的核心装饰器,其核心作用是​​为测试用例提供可复用的资源初始化、数据准备和清理逻辑​​ 二:代替setup 和 teardownsetup =…

矿山通信如何实现全域一体化?迈威为煤矿装上了“智慧神经网络”

矿山通信如何实现全域一体化?迈威为煤矿装上了“智慧神经网络”在刚刚落幕的第二十一届中国国际煤炭采矿技术展上,全球矿业的目光再次聚焦于一个核心议题:数字化转型如何真正在矿山落地。作为这一进程的“神经中枢”…

Java异常处理实战精要:构建稳定应用的基石

在Java项目的开发历程中,异常处理是衡量代码健壮性与开发者专业度的重要标尺。一个处理得当的异常体系,能像程序的免疫系统一样,有效抵御外部的意外干扰,维持内部逻辑的稳定运行。本文将系统性地梳理Java项目中异常…

€$P2025

省流:唇膜玩 由于特殊原因把前面部分跳过 刚进考场被监考员扔到没人坐的一组的第一排,然后我的右边的右边的后面是小玉米 14:27 准时看 T1,这个 \(\frac{n}{2}\) 的限制导致最多只有一个部门会因为限制导致结果变小…

CSP2025 补题

游记没什么好搬的,链接。 T1 发现只会有一个超限,贪心换一下就行了。 T2 首先暴力枚举 \(k\) 拿边跑 MST 的复杂度是 \(O(2^knk + 2^kn\log nk)\) 的,考虑将 Kruskal 的 sort 换成 std::merge 即可通过,复杂度 \(O…

哈希学习总结

基本思想 哈希的核心思想在于,将输入映射到一个值域较小、可以方便比较的范围。 性质两个相同的元素哈希值相同。 两个不同的元素哈希值不同(若相同则称为冲突)。一维哈希(字符串哈希) 对于字符串 \(s\),其哈希值…

142.环形链表 II

var detectCycle = function(head) {if(!head)return null;let pre=head,cur=head;while(cur&&cur.next){pre=pre.next;cur=cur.next.next;if(pre===cur){let temp=head;while(temp!==pre){pre=pre.next;temp=…

2025 年 11 月制冷设备厂家推荐排行榜,小型制冷设备,空调制冷设备,工业制冷设备,商用制冷设备,大型制冷设备,制冷设备安装与维修服务公司推荐

2025 年 11 月制冷设备厂家推荐排行榜:小型、空调、工业、商用及大型制冷设备综合指南 行业背景与发展趋势 制冷设备行业作为现代工业和商业基础设施的重要组成部分,正经历着技术革新和市场需求的深刻变革。随着节能…

从创作到分析全搞定!2025公众号效率工具深度测评,这波升级95%的人还不知道

从创作到分析全搞定!2025公众号效率工具深度测评,这波升级95%的人还不知道作为新媒体运营者,你是否常陷入这些困境:熬夜赶稿后排版格式反复出错,跨平台分发时样式全乱;拟标题时反复修改仍无爆款潜力,配图怕侵权…

20232304 2025-2026-1 《网络与系统攻防技术》实验四实验报告

20232304 2025-2026-1 《网络与系统攻防技术》实验四实验报告 1.实验内容 一、恶意代码文件类型标识、脱壳与字符串提取 对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者…

k8s-java应用部署(4)

我们一个常见的应用,一般都会涉及到访问数据库,配置等外部资源。同时也将自己的能力提供给外部访问,前面已经介绍pod的内外网络通信 k8s-Pod中的网络通信(3) 这次直接做一个java应用, 开发——打镜像——配置并部署…

指数函数和对数函数

一、指数函数的定义与特点:指数函数的一般形式为f(x) = a^x,其中a为常数,x为自变量。它以自然常数e为底,也可以选择其他正实数作为底。指数函数的特点如下:1. 当a>1时,随着x的增大,指数函数迅速增大,呈现指…

单目三角化原理 - MKT

单目三角化原理 为什么V T 的最后一列就是解?第一和第二帧产生地图点后,如果进来第三帧,如何定位第三帧,并将其建立的新地图点和现有地图点合并一个坐标系。考虑到第三帧和第二帧的相对位姿尺度未必与第一帧…

[CEOI 2017] Sure Bet

神秘题目,本人用的贪心做的,发现一个二分写法,故记录一下。 题意 有 \(2N\) 个灯泡,分为 \(A\) 组和 \(B\) 组各 \(N\) 个。 你可以从中选取任意个灯泡,每选取一个灯泡需要花费 1 的代价。 在你选取完之后,系统会…