2021-8-27惊标题心动魄的按完了领导家的路由器。骑着电单车返航了。接下来,今天的第2道。计算最大公约数题面! 看到题前面的*了吗!稍微有点难度
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f8d397362caff01ecfeb2ded3ca5e795.png)
2021-8-27 15:47先找到欧几米得算法 学习一下计算公约数
20210828to20210829 两天想的就是如何解析。但没有100%。不过有20%也是好的
1、首先明确了一点。找出同时小于n1和n2共同的数d。
2、明确了一种以后看到题目的破解顺序,这一点很开心。
20210830我想到了用while True:
n1 = eval(input("Enter first integer: "))
n2 = eval(input("Enter second integer: "))
k = 0
gcd = 1
while True:
k += 1
if k < n1 and k < n2:
gcd = k
print(gcd)
如果n1=125 ,n2=2525,则gcd = 124,但不能高兴太早了!请看输出结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1fa8d1d18d7a22029912903c6a4544ad.png)
不断的死循环。重复打印。因为并没有停止。那我是不是可以加个break呢好我加了哦!
### 结果竟然是1
2021年08月30日 11点55分
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4f62fb5642007aa39c006f88ca65e23a.png)
成功了我得到了最小数。接着我该如何从最小数里提取出n1和n2的最大公约数呢??请看我遇到的第一大问题
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ae8e922338a05a37173e26991b996715.png)
integer division or modulo by zero
虽然我现在还弄不明白他的翻译。但是有一点可以肯定这里有一个数是0,经过我的分析我最后发现了是d我在初始的时候就将0赋值给了d这就造成了现在的情况。所以我将d改为1.希望大家也要注意哦。
我成功了!!!先看一下我怎么发现的
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ec018c12d0c59ce58ba6a5be04ea3362.png)
这个“KeyboardInterrupt” 我解决了k 应该为1的问题后出现。此时的我鬼使神差的做了一个操作。而下面的结果就是这个题的解答。请看
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0f74701c8503213db91f18d348df408e.png)
成功了真的天哪。太棒了。3天终于攻克了它。虽然感觉分享还有不足。但是我成功了下面我在把原书中的另一个解题方法放一下。大家对比一下。一个是通过n1和n2共同的最小数d,然后不断-1,得出公约数,还有一个是从2开始一直累加得出公约数。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5349ac7455243aefb0aaa9afba7318f8.png)
最后谢谢大家的观赏。