鱼C论坛

 找回密码
 立即注册
查看: 146|回复: 1

[学习笔记] (辗转相除法) 求2个数的最大公约数

[复制链接]
回帖奖励 45 鱼币 回复本帖可获得 3 鱼币奖励! 每人限 1 次(中奖概率 60%)
发表于 2024-11-3 00:00:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 无理想的闲鱼 于 2024-11-3 00:17 编辑


运用铺瓷砖的想法,把两个数看作长方形的长和宽,运用多大的正方形瓷砖能铺满整个长方形地面

①第一次铺瓷砖,用以短边为边长(b = 6)的正方形瓷砖铺,
   16 % 6 = 4,剩下6*4的地面未铺

第一次

第一次
————————————————————————————————————————————————————————————————————————————————————————
②第二次铺瓷砖,用以短边为边长(b = 4)的正方形瓷砖铺,
   6 % 4 = 2,还有4*2的地面未铺

第二次

第二次
———————————————————————————————————————————————————————————————————————————————————————
③第三次铺瓷砖,用以短边为边长(b = 2)的正方形瓷砖铺,
   4 % 2 = 0,地面全部铺完!

第三次

第三次

那么! 16*6的地面 用(最大)边长为2的瓷砖就能铺满,所以16和6的最大公因数是2!!!
(另一种思路:也就是一直割大正方形直到找出最小的那个正方形

归纳:第一次没有余数,最大公因数是较小的那个数
第一次有余数,步骤就是除数除以余数,重复直至整除,最后的除数就是最大公因数

a = eval(input("请输入第一个数:"))
b = eval(input("请输入第二个数:"))
c = a % b
while c != 0:
    a = b
    b = c
    c = a % b
print("a和b的最大公约数为:", b, sep='')

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-11-3 09:13:34 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 16:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表