ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

求两个给定正整数的最大公约数和最小公倍数(python版)

2021-07-21 17:04:13  阅读:225  来源: 互联网

标签:152 正整数 1997 公倍数 615 python 最大公约数


求两个给定正整数的最大公约数和最小公倍数(python版)

输入格式:

输入在两行中分别输入正整数x和y。

输出格式:

在一行中输出最大公约数和最小公倍数的值。

输入样例1:

在这里给出一组输入。例如:

100
1520

输出样例1:

在这里给出相应的输出。例如:

20 7600

解答

x=xx=int(input())
y=yy=int(input())
while True:
    d=x%y
    if d==0:
        break
    x,y=y,d
print(y, xx*yy//y)

原理:辗转相除法求最大公约数,两数之积等于最大公约数与最小公倍数之积

假如需要求 1997 和 615 两个正整数的最大公约数,用欧几里得算法,是这样进行的:

1997 / 615 = 3 (余 152)

615 / 152 = 4(余7)

152 / 7 = 21(余5)

7 / 5 = 1 (余2)

5 / 2 = 2 (余1)

2 / 1 = 2 (余0)

至此,最大公约数为1

以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数,所以就得出了 1997 和 615 的最大公约数1。

同时,最小公倍数为1997*615/1=1228155

标签:152,正整数,1997,公倍数,615,python,最大公约数
来源: https://blog.csdn.net/LKFMYQQ/article/details/118970760

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有