【编程基础】009.输入两个正整数m和n,求其最大公约数和最小公倍数。
创始人
2024-06-01 20:51:27
0

最大公约数与最小公倍数


题目描述

输入两个正整数m和n,求其最大公约数和最小公倍数。

输入格式

两个整数

输出格式

最大公约数,最小公倍数

样例输入

5 7

样例输出

1 35

题目思路

在这里我们用m表示较大的那个数,n表示较小的数。求最大公约数也即是求能被m和n 整除的最大数。gcd(m,n) 表示m 和n 的最大公约数。根据辗转相除法可知gcd(m,n)=gcd(n,m%n),具体证明过程如下:


gcd⁡(m,n)=gcd⁡(n,mmodn)\operatorname{gcd}(m, n)=\operatorname{gcd}(n, m \bmod n)gcd(m,n)=gcd(n,mmodn) (不妨设 m>nm>nm>n 且 r=mmodn,r≠0r=m \bmod n, r \neq 0r=mmodn,r=0 )

mmm 可以表示成 m=kn+r(m,n,k,rm=k n+r(m, n, k, rm=kn+r(m,n,k,r 皆为正整数, 且 r 而 r=m−knr=m-k nr=m−kn,两边同时除以 ddd ,可得:
rd=md−knd=h\frac{r}{d}=\frac{m}{d}-\frac{k n}{d}=h dr​=dm​−dkn​=h
由等式右边可知 hhh 为整数( ddd 是 mmm 和 nnn 的公约数, knk nkn 是 nnn 的整倍数,所以 knd\frac{k n}{d}dkn​ 也应该是整数),所 以我们得出 ddd 也为 mmm 和 nnn 的余数的公约数即 ddd 是 n,mmodnn , m \bmod nn,mmodn 的公约数
至此,我们得知,如果一个数是两个数的公约数,那么,它也是这两个数的余数和较小数公约数。
假设 ddd 是 (n,mmodn)(n, m \bmod n)(n,mmodn) 的任意一个公约数,则 ddd 是 nnn 的公约数, ddd 是 (m−kn)(m-k n)(m−kn) 的公约数, kkk 是一个整数,
我们假设 n=xd,m−kn=ydn=x d, m-k n=y dn=xd,m−kn=yd 其中 x,yx, yx,y 是正整数,根据上面的推断可得:
m=yd+knm=y d+k n m=yd+kn
两边同时除以 ddd ,得
md=y+knd\frac{m}{d}=y+\frac{k n}{d} dm​=y+dkn​
由已知可得 yyy 为正整数, ddd 是 mmm 的公约数, knd\frac{k n}{d}dkn​ 也肯定是正整数,故得 ddd 为 mmm 的公约数.
因为 ddd 既是 nnn 的公约数又是 mmm 的公约数了,
所以证出 (m,n)(m, n)(m,n) 和 (n,mmodn)(n, m \bmod n)(n,mmodn) 的公约数是一样的,其最大公约数也必然相等。


所以求m和n的最大公约数,等价于求n 和m%n的最大公约数,用图来表示即不断地用n去填充 m表示的区域,接着赋值n=m%n,m=n 重复上述操作直到m%n==0,则n就是m和n的最大公约数。

在这里插入图片描述

AC代码(C语言)

#include
int gcd(int m,int n){	int t;if(n>m){//令m>nt=n;n=m;m=t;}if(m%n==0) return n;return gcd(n,m%n);
}
int main(){int m,n;scanf("%d%d",&m,&n);int gc=gcd(m,n);int cm=(m/gc)*(n/gc)*gc;printf("%d\n%d\n",gc,cm);return 0;
} 

相关内容

热门资讯

丽江古城中英文导游词 丽江古城中英文导游词  丽江古城被列入世界文化遗产后,丽江的旅游业达到顶峰,成为世人向往的世外桃源、...
观音山导游词 观音山导游词范文  作为一位杰出的导游,很有必要精心设计一份导游词,导游词具有形象、生动、具有感染力...
庐山导游词 庐山导游词(精选4篇)  作为一名专门引导游客、助人为乐的导游,就不得不需要编写导游词,借助导游词可...
大同云冈石窟导游词 大同云冈石窟导游词  云冈石窟佛教艺术按石窟形制、造像内容和样式的发展,小编收集了大同云冈石窟导游词...
明孝陵导游词 明孝陵导游词10篇  作为一名默默奉献的导游,可能需要进行导游词编写工作,导游词具有注重口语化、精简...
无锡九龙灌浴导游词 无锡九龙灌浴导游词  作为一名专门为游客提供优质服务的导游人员,可能需要进行导游词编写工作,导游词由...
灯塔风景区优秀导游词 灯塔风景区优秀导游词  你知道日照吗?日照,取自太阳照耀,就是这样一个太阳照耀下的城市,这里的灯塔风...
金寨红军广场导游词 金寨红军广场导游词  你知道金寨红军广场的来历吗?你知道金寨红军广场的导游词应该怎么写嘛。下面就由小...
山东地下大峡谷景点讲解导游词 山东地下大峡谷景点讲解导游词  各位**游客朋友,你们好!欢迎大家光临山东地下大峡谷旅游区观光游览。...
苏州简介及特色导游词 苏州简介及特色导游词  玄妙观是一座有着1300年历史的恢宏道教建筑群,主殿是九开间的重檐歇山顶的三...
苏州导游词 苏州导游词范文(精选5篇)  作为一名旅游从业人员,时常会需要准备好导游词,导游词是我们引导游览时使...
鸳鸯溪导游词 鸳鸯溪导游词  作为一位兢兢业业的旅游从业人员,就难以避免地要准备导游词,借助导游词可以更好地宣传景...
大理导游词 大理导游词范文(精选8篇)  作为一位不辞辛劳的导游,就难以避免地要准备导游词,导游词可以加深游客对...
四川导游词节选 四川导游词节选  四川,简称为“蜀”,历史悠久。在古代称为巴蜀,是古代巴人和蜀人的发祥地,这片土地孕...
鸟的天堂导游词 鸟的天堂导游词精选15篇  作为一名专门为游客提供优质服务的导游人员,编写导游词是必不可少的,导游词...
韶关南雄梅关古道导游词 韶关南雄梅关古道导游词  各位游客,大家好!我是**旅行社的导游,大家可以叫我**,韶关南雄梅关古道...
上海宋庆龄故居导游词 上海宋庆龄故居导游词  作为一名优秀的旅游从业人员,就不得不需要编写导游词,导游词具有极强的实用性,...
白果树瀑布导游词 白果树瀑布导游词3篇  作为一名优秀的旅游从业人员,常常要写一份好的导游词,导游词是导游员进行实地口...
沈阳张氏帅府导游词 沈阳张氏帅府导游词  作为一名具备丰富知识的导游,就有可能用到导游词,导游词是我们引导游览时使用的讲...
永安桃源洞的导游词 永安桃源洞的导游词各位远道而来的朋友:  一路辛苦了,欢迎你们!我来自三明市明运旅行社,姓张名红鹰,...