求最大公约数

感想

虽然伪代码看起来是一样的,但实际一开始写出来的很复杂,后来发现可以通过数学上的办法进行简化。
算法的本质是用计算机表达计算的过程,精简的程序显然也是数学的学习。

辗转相除法

先将两个整数a与b进行相除
如果余数为0
则b为两数的最大公约数
如果不等于0
则将b赋值给a
将余数赋值给b
在对a与b进行相除
直到余数为0时终止(a%b==0)
则b为最大公约数。
来源地址

伪代码

read num1
read num2
set remainder=num1%num2
while (remainder!=0)
set num1 to num2
set num2 to remainder
set remainder=num1%num2
write remainder

Python实现

m=int(input("输入一个数"))
n=int(input("输入一个数"))
def a(m,n):
r = m % n
while r != 0:
m = n
n = r
r = m % n
return n
print("最大公约数是",a(m,n))

posted @ 2021-11-03 19:05  20211309宁心宇  阅读(28)  评论(0编辑  收藏  举报