当前位置:网站首页>信息学奥赛一本通 1915:【01NOIP普及组】最大公约数与最小公倍数 | 洛谷 P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题
信息学奥赛一本通 1915:【01NOIP普及组】最大公约数与最小公倍数 | 洛谷 P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题
2022-07-30 17:33:00 【君义_noip】
【题目链接】
ybt 1915:【01NOIP普及组】最大公约数与最小公倍数
洛谷 P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题
【题目考点】
1. 最大公约数与最小公倍数
- 求最大公约数的方法:见信息学奥赛一本通 1207:求最大公约数问题 | OpenJudge 2.2 7592:求最大公约数问题
- 最大公约数与最小公倍数的关系:两数乘积为这两数最大公约数与最小公倍数的乘积
【解题思路】
已知两个正整数x,y。x是p,q两个数的最大公约数,y是p,q两个数的最小公倍数。
因为两数乘积是最大公约数与最小公倍数的乘积,所以有: x y = p q xy = pq xy=pq
p,q这两个数字,一定都大于等于最大公约数x,小于等于最小公倍数y。
从x到y枚举p,通过 q = x y / p q = xy/p q=xy/p得到q。
求出p,q的最大公约数,看最大公约数的值是否等于x。如果是,那么这一组p, q是满足条件的,做计数。否则不满足条件。
最后输出满足条件的p, q的个数。
【题解代码】
解法1:使用迭代方法求最大公约数
#include<bits/stdc++.h>
using namespace std;
int gcd(int a, int b)//求a, b的最大公约数。注意必须满足a >= b
{
int r;
while(b > 0)
{
r = a % b;
a = b;
b = r;
}
return a;
}
int main()
{
int x, y, p, q, ct = 0, x1;
cin >> x >> y;
for(p = x; p <= y; ++p)
{
if(x*y%p == 0)
{
q = x*y/p;
x1 = gcd(p, q);//求出p, q的最大公约数x1
if(x1 == x)//如果与x相同,那么这一组p, q满足条件
ct++;
}
}
cout << ct;
return 0;
}
解法2:使用递归方法求最大公约数
#include<bits/stdc++.h>
using namespace std;
int gcd(int a, int b)//求a, b的最大公约数。注意必须满足a >= b
{
if(b == 0)
return a;
return gcd(b, a%b);
}
int main()
{
int x, y, p, q, ct = 0;
cin >> x >> y;
for(p = x; p <= y; ++p)
if(x*y%p == 0 && gcd(p, x*y/p) == x)
ct++;
cout << ct;
return 0;
}
边栏推荐
- 简易的命令行入门教程
- [极客大挑战 2020]Roamphp1-Welcome
- 有效的括号字符串[贪心练习]
- ERROR 2003 (HY000) Can't connect to MySQL server on 'localhost3306' (10061)Solution
- CMake库搜索函数居然不搜索LD_LIBRARY_PATH
- [HarekazeCTF2019]Avatar Uploader 1
- Analysis and Simulation of Short Circuit Fault in Power System Based on MATLAB
- Wanhua chemical fine chemical industry innovation product assembly
- JMeter笔记3 | JMeter安装和环境说明
- 17.机器学习系统的设计
猜你喜欢
随机推荐
Microsoft Office 2019 software download and installation detailed tutorial!
bean的生命周期
ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)解决办法
LeetCode167: Sum of two numbers in sorted array
一个 15 年 SAP ABAP 开发人员分享的 SAPGUI 一些个性化设置和实用小技巧试读版
基于MATLAB的电力系统短路故障分析与仿真
【Cloud Store Announcement】Notice of Help Center Update on July 30
Web3时代重要基础设施深度拆解:4EVERLAND
JMeter Notes 4 | JMeter Interface Introduction
[MRCTF2020]Ezaudit
S7-200SMART中定时器的使用方法和常见注意事项汇总
Google earth engine如何实现我们时间列表的排列和选取
Insert data into MySQL in C language
从零开始的Multi-armed Bandit
数据库系统原理与应用教程(063)—— MySQL 练习题:操作题 39-50(七):SELECT 基本语法联系
Mathematical Principles of Graph Convolutional Neural Networks——A Preliminary Study on Spectral Graph Theory and Fourier Transform
torch.optim.Adam() 函数用法
un7.30:Linux——如何在docker容器中显示MySQL的中文字符?
C陷阱与缺陷 第6章 预处理器 6.3 宏并不是语句
Error occurred while trying to proxy request The project suddenly can't get up








![[HarekazeCTF2019] Avatar Uploader 1](/img/2c/6dde7b8d34ba0deb334b4283e1e30e.png)
