Python数学计算工具4、Python求最大公约数

举报
红目香薰 发表于 2022/11/29 15:12:09 2022/11/29
【摘要】 ​ 最大公约数百度解析:最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。我们这里只看最大公约数...

 最大公约数百度解析:

最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。

a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。

求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。

与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。

我们这里只看最大公约数,很多家长在陪同孩子做作业的时候就会遇到这个问题,孩子问你,这两个数的最大公约数是什么,你就要拿起纸笔来计算了,简单的还好,能被2/3整除的这类可以利用成倍的数值测试,几秒也就算出来了,但是很多的时候甚至是比较大的质因数,就很难通过大脑直接运算了,不过我们很多时候还是身边有计算机的,那么使用这个工具跑起来就方便了。

不是所有的两个数都有除【1】以外的最大公约数,所以两个数最少只有1是俩数的最大公约数。

我们接下来先来一个编码示例:

def MaxToMolecular(x, y):
    """该函数返回两个数的最大公约数"""

    # 获取最小值
    if x > y:
        Min = y
    else:
        Min = x

    for i in range(1, Min + 1):
        '''
        循环过程是从1开始的,1不做计算,还有Min+1是因为range循环的时候不包含最后一个值,所以得+1
        '''
        if ((x % i == 0) and (y % i == 0)):
            result = i

    return result


print(MaxToMolecular(1286266616, 99616))

测试的好大一个数,最大公约数是【8】 

编辑

整理打包:

import os

os.system("title 最大公约数计算:")



def MaxToMolecular(x, y):
    """该函数返回两个数的最大公约数"""
    # 获取最小值
    if x > y:
        Min = y
    else:
        Min = x
    for i in range(1, Min + 1):
        '''
        循环过程是从1开始的,1不做计算,还有Min+1是因为range循环的时候不包含最后一个值,所以得+1
        '''
        if ((x % i == 0) and (y % i == 0)):
            result = i
    return result


while True:
    try:
        x = int(input("请输入第一个数x:"))
        y = int(input("请输入第二个数y:"))
        print("{0},{1}的最大公约数是:{2}".format(x, y, MaxToMolecular(x, y)))
    except:
        print("请输入正确数值")

示例包下载地址:

python排列前500斐波那契额数列-Python文档类资源-CSDN下载

下面是打包过程:

使用打包工具:【pip install pyinstaller】

安装完成后注意使用语法:

pyinstaller -F -p D:\save\Exe\studys\Python\exe\Lib -i D:\save\myclass\Python\core\pythonProject\python.ico demo5.py -n ""两个数的最大公约数计算器"

可以看到我使用了2个绝对路径,绝对路径1是Python环境的包所在的位置,如果包不全的话需要自己通过pip进行下载,建议修改完镜像位置再下载。不会也别着急,每篇违章后面都会有打包教程。操作次数多了也就会了。

执行完成我们看到【successfully】代表成功了。

编辑

编辑



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。