最大公约数与最小公倍数
来源:互联网 发布:被偏爱的有恃无恐 知乎 编辑:程序博客网 时间:2024/06/16 08:23
辗转相除法求两个数的最大公约数的步骤如下:
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除小的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止.那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数).
例如求1515和600的最大公约数,
第一次:用600除1515,商2余315;
第二次:用315除600,商1余285;
第三次:用285除315,商1余30;
第四次:用30除285,商9余15;
第五次:用15除30,商2余0.
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除小的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止.那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数).
例如求1515和600的最大公约数,
第一次:用600除1515,商2余315;
第二次:用315除600,商1余285;
第三次:用285除315,商1余30;
第四次:用30除285,商9余15;
第五次:用15除30,商2余0.
1515和600的最大公约数是15. 记为gcd(a,b);
最小公倍数=a*b/g(a,b);
公约数和公倍数
时间限制:1000 ms | 内存限制:65535 KB
难度:1
- 描述
- 小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。
- 输入
- 第一行输入一个整数n(0<n<=10000),表示有n组测试数据;
随后的n行输入两个整数i,j(0<i,j<=32767)。 - 输出
- 输出每组测试数据的最大公约数和最小公倍数
- 样例输入
36 612 1133 22
- 样例输出
6 61 13211 66
ac代码:
#include <cstdio>using namespace std;int min_submultiple(int a,int b){int t=a%b;if(t==0)return b;elsemin_submultiple(b>t?b:t,b>t?t:b);}int main(){int x,a,b,m,n;scanf("%d",&x);while(x--){scanf("%d %d",&a,&b);m=min_submultiple(a>b?a:b,a>b?b:a);n=a*b/m;printf("%d %d\n",m,n);}return 0;}
0 0
- 求最大公约数与最小公倍数
- 最大公约数与最小公倍数问题
- 求最大公约数与最小公倍数
- 最大公约数与最小公倍数
- 最大公约数与最小公倍数
- 求最大公约数与最小公倍数
- 最大公约数 与 最小公倍数
- 最大公约数与最小公倍数源码
- 最小公倍数与最大公约数
- 最大公约数与最小公倍数
- 最大公约数与最小公倍数
- 最大公约数与最小公倍数
- 最小公倍数与最大公约数
- 最大公约数与最小公倍数
- 最大公约数与最小公倍数算法
- 最大公约数与最小公倍数
- 最大公约数与最小公倍数
- 最大公约数与最小公倍数
- sql:连接查询跟多表查询的区别
- java基础-----2Java 发展简史
- 使用anaconda本地安装python包的方法
- 几种通讯协议的比较RMI > Httpinvoker >= Hessian >> Burlap >> web service
- 使用anaconda本地安装python包的方法
- 最大公约数与最小公倍数
- jQuery的promise异步模式
- MySQL-5.7.10主主同步的安装和配置
- 在指定的CEF线程上执行任务
- 蓝桥杯--算法提高 我们的征途是星辰大海 (模拟)
- 利用AutoCAD I/O 和View & Data 做DWG图纸的无纸化签字
- 【C++基础之二十】可变参数的函数
- Docker Container网络模式
- oracle表空间使用率统计查询