️️️️- 2022-06-19 14:09 采纳率: 100%
浏览 912
已结题

编写函数,接收两个整数,求最大公约数和最小公倍数,并从键盘上输入两个整数,调用该函数计算两个整数的最大公约数和最小公倍数。

img


可以讲解一下解题思路吗
编写函数,接收两个整数,求最大公约数和最小公倍数,并从键盘上输入两个整数,调用该函数计算两个整数的最大公约数和最小公倍数。

  • 写回答

1条回答 默认 最新

  • A Python 萌新花花 2022-06-19 15:07
    关注

    一、辗转相除法可以求两个因数的最大公因数。(欧几里德算法)

    1.我们可以用列举法、筛选法及短除法求得,如:6和9的最大公因数(6,9)=3

    2.辗转相除法。

    9÷6=1……3

    6÷3=2

    3就是9和6的最大公因数。

    再如:30和80的最大公因数。

    80÷30=2……20

    30÷20=1……10

    20÷10=2

    10就是30和80的最大公因数。

    辗转相除法优点是可以求出两个大数的最大公因数

    二、辗转相除法求最大公因数的原理

    如果我们要求8251与6105的最大公因数的话,假设8251是这个数x的a倍,再假设6105是x的b倍,那么2146=8251-6105,是x的(a-b)倍,也是x的倍数,而无论这几个数如何加减,甚至相乘,都还是最大公约数的倍数,我们就可以把求8251与6105的最大公约数简化成求2146和6105的最大公约数,再把求2146与6105的最大公约数简化为求3959(=6105-2146)与2146的最大公约数,如此相减往复几次后,会发现两个数变相等了37=37,这个数就是两个原来数的最大公因数。  举个例子9和69-6=3,保留6,36-3=3,保留3,3发现两数相等,为3所以最大公因数为3

    9和6的最大公因数,我们知道是3。9是3的倍数,6是3的倍数,那3也一定是3的倍数。

    30和80的公因数为m,30是m的倍数,80是m的倍数。80里有的两个30也肯定是m的倍数,剩下的20也会是m倍数。10也会是m的倍数。10=10=m。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月28日
  • 已采纳回答 6月20日
  • 创建了问题 6月19日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料