目录
简单代码算出最大公约数,最小公倍数:
辗转相除法得到最大公约数:
两数相乘倒序最小公倍数:
分解质因式, 打印输出, 并且存到列表
主程序:
由质因式得到最小公倍数:
简单代码算出最大公约数,最小公倍数:
# 最大公约数和最小公倍数
a = int(input('please enter 1st num:'))
b = int(input('please enter 2nd num:'))
s = a * b
while a % b != 0:a, b = b, (a % b)
print(b, '是最大公约数')
print(s//b, '是最小公倍数')
辗转相除法得到最大公约数:
# 思想:求出每个正数的质因式子,max和for循环实现
def max_div(m, n):# 得到最大公约数#算法:除法, 函数作用较为单一r = 1while True:r = m % nif r == 0:return nm = nn = r
两数相乘倒序最小公倍数:
def min_times(m, n):# 这里不要用 m = max(m, n) n = min(m, n)后面的n比较的值是更新的m和原来的n_min = m * nfor i in range(m * n, m - 1, -1):if i % m == 0 and i % n == 0 and i < _min:_min = ireturn _min
分解质因式, 打印输出, 并且存到列表
def fun(n):x = 1flag = Truelst = []print("{}=".format(n), end='')while n != 1:x += 1while n % x == 0:lst.append(x)n /= xif flag:flag = Falseprint(x, end='')else:print("*{}".format(x), end='')print()return lst
主程序:
if __name__ == '__main__':m = int(input('Enter a integer number:'))n = int(input('Enter the second integer number:'))print('最大的公约数为', max_div(m, n))print('最小公倍数为', min_times(m, n))
由质因式得到最小公倍数:
l1 = fun(m)l2 = fun(n)for i in l1:if i not in l2:l2.append(i)k = 1for i in l2:k *= iprint('最小公倍数为:', k)