python辗转相除法求最大公约数和最小公倍数的实现

 更新时间:2022年07月16日 09:01:48   作者:阿松丶  
这篇文章主要介绍了python辗转相除法求最大公约数和最小公倍数的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

辗转相除法求最大公约数和最小公倍数

辗转相除法数学原理

辗转相除法也称欧几里得算法,是用来求两个正整数的最大公约数的算法。接下来我们用实例来解释一下。假如我们需要求12和21的最大公约数,用辗转相除法是这样实现的:

21 / 12 = 1 (余 9)
12 / 9 = 1(余 3)
9 / 3 = 3 (余 0)

至此,得到21与12的最大公约数为3(注意:这里的3是第二个式子取余得到的3,而非最后一个式子相除得到的),然后把两个数相乘再除以最大公约数就可以得到最小公倍数:(21*12)/ 3 = 84

python代码实现

接下来我们用python代码来实现这样一道题目:

题目:输入两个正整数,求其最大公约数和最小公倍数。

def func(m,n):
    a = m
    b = n
    # 默认m>n,若不是,则交换
    if m < n:
        m,n = n,m
    while n != 0:
        # 对m除n取余
        r = m % n
        m = n
        n = r
    return m,(a*b)/m

print("正整数m与n的最大公约数与最小公倍数分别为:",func(12,21))

正整数m与n的最大公约数与最小公倍数分别为: (3, 84.0)

用递归的方式实现

def rec(m,n):
    # 默认m>n,若不是,则交换
    if m < n:
        m,n = n,m
    # 终止条件    
    if n == 0:
        return m,(a*b)/m
    # 递归部分
    return rec(n,m%n)

a = 12
b = 21

print("正整数m与n的最大公约数与最小公倍数分别为:",rec(12,21))

正整数m与n的最大公约数与最小公倍数分别为: (3, 84.0)

Python3 20.辗转相除法

算法分析

1.算法定义为:在有限的步骤内解决数学问题的程序,即为了解决某项工作或某个问题,所需要有限数量的机械性或重复性指令与计算步骤。

2.最大公约数:可整除两个整数的最大整数。

3.用两个数中较大的整数除以较小的数,求得商和余数。

源代码

# coding:gbk
Num_1 = int(input("请输入一个整数: "))
Num_2 = int(input("请输入一个整数: "))

if Num_1 < Num_2:
	Tmp_Num = Num_1       # 是交换而不是赋值
	Num_1 = Num_2
	Num_2 = Tmp_Num

while Num_2 != 0:
	Tmp_Num = Num_1 % Num_2
	Num_1 = Num_2
	Num_2 = Tmp_Num

print('输出这两个整数的最大公约数:', Num_1)

结果截图


以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在Python中使用SimpleParse模块进行解析的教程

    在Python中使用SimpleParse模块进行解析的教程

    这篇文章主要介绍了在Python中使用SimpleParse模块进行解析的教程,文章来自于IBM官方的开发者技术文档,需要的朋友可以参考下
    2015-04-04
  • python双端队列原理、实现与使用方法分析

    python双端队列原理、实现与使用方法分析

    这篇文章主要介绍了python双端队列原理、实现与使用方法,结合实例形式分析了Python双端队列的概念、原理、定义及使用方法,需要的朋友可以参考下
    2019-11-11
  • Python+logging输出到屏幕将log日志写入文件

    Python+logging输出到屏幕将log日志写入文件

    这篇文章主要给大家介绍了关于Python+logging输出到屏幕将log日志写入文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python使用BeautifulSoup解析并获取图片的实战分享

    Python使用BeautifulSoup解析并获取图片的实战分享

    这篇文章主要介绍了Python使用BeautifulSoup解析并获取图片的实战分享,文中通过代码和图文结合的方式给大家讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-06-06
  • Python之用户输入的实例

    Python之用户输入的实例

    今天小编就为大家分享一篇Python之用户输入的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python使用re模块爬取豆瓣Top250电影

    python使用re模块爬取豆瓣Top250电影

    这篇文章主要介绍了python使用re模块爬取豆瓣Top250电影的示例,帮助大家更好的理解和学习python 爬虫,感兴趣的朋友可以了解下
    2020-10-10
  • Python使用BeautifulSoup库解析网页

    Python使用BeautifulSoup库解析网页

    在Python的网络爬虫中,网页解析是一项重要的技术。而在众多的网页解析库中,BeautifulSoup库凭借其简单易用而广受欢迎,在本篇文章中,我们将学习BeautifulSoup库的基本用法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2023-08-08
  • 浅谈Tensorflow2对GPU内存的分配策略

    浅谈Tensorflow2对GPU内存的分配策略

    本文主要介绍了Tensorflow2对GPU内存的分配策略,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Pytorch 实现变量类型转换

    Pytorch 实现变量类型转换

    这篇文章主要介绍了Pytorch 实现变量类型转换操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python 脚本实现淘宝准点秒杀功能

    Python 脚本实现淘宝准点秒杀功能

    这篇文章主要介绍了python实现淘宝准点秒杀脚本,本文图文实例相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11

最新评论