hao同学的技术博客

  • 首页
  • Java
    • Java
    • JVM教程
    • Java面试
    • Java并发入门
    • Java并发进阶
  • 项目
    • 从零打造项目
  • Python
    • Python
    • Python爬虫
    • 算法
  • Java框架
    • Spring
    • SpringBoot
  • 前端
    • Angular
  • 其他
    • Linux
    • SQL
  • 随笔
分享技术,记录人生
一个痴迷于技术的厨艺爱好者
  1. 首页
  2. 算法
  3. 正文

Python 求解最小公倍数

2022年5月22日 319点热度 0人点赞 0条评论

Python 求解最小公倍数插图

问题描述:

给定两个正整数,求它们的最小公倍数。

提高要求:

三个以上数的求解。

一、两个数的情况下求解最小公倍数

1.穷举法

lcm = min(m,n)
max_num = max(m,n)
for i in range(2,max_num+1):
   if lcm*i % m ==0 and lcm*i % n ==0:
       lcm *= i
       break
 print(lcm)

2.公式 lcm = a*b//gcd(a, b)

def lcm(a,b):
    gcd = lambda a, b: a if b == 0 else gcd(b, a % b)
    return a*b//gcd(a,b)

二、多个数求解

1.穷举法

def get_lcm():
    '''
    求解三个数以上的最小公倍数
    :return:
    '''
    L = [6,5,10,3]
    L = [2, 8, 3, 50]

    lcm = min(L)

    for i in L:
        if lcm % i != 0:
            for j in range(2,i+1):
                if (lcm*j) % i == 0:
                    lcm *= j
                    break
    return lcm

2.公式 lcm = a*b//gcd(a, b)

from functools import reduce

def get_lcm2():
    L = [2, 8, 3, 50]
    def lcm(a,b):
        gcd = lambda a, b: a if b == 0 else gcd(b, a % b)
        return a*b//gcd(a,b)
    return reduce(lcm,L)
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: Python 算法
最后更新:2022年5月22日

hresh

这是一个专注于IT技术学习交流的个人技术博客网站,包括Java学习、Python爬虫、Web开发实践等领域,深耕Java领域,内容涵盖Java基础、Java并发编程、Java虚拟机、Java面试等核心知识点。

点赞
< 上一篇
下一篇 >

文章评论

取消回复

hresh

这是一个专注于IT技术学习交流的个人技术博客网站,包括Java学习、Python爬虫、Web开发实践等领域,深耕Java领域,内容涵盖Java基础、Java并发编程、Java虚拟机、Java面试等核心知识点。

文章目录
  • 一、两个数的情况下求解最小公倍数
  • 二、多个数求解
最新 热点 随机
最新 热点 随机
后端必知:遵循Google Java规范并引入checkstyle检查 Spring Security结合Redis实现缓存功能 Spring Security结合JWT实现认证与授权 Spring Security自定义认证逻辑实现图片验证码登录 Spring Security进阶学习 Spring Security入门学习
关于逃逸分析的学习 Spring Boot注解学习之@SpringBootApplication(二) 你知道为什么要有两个 Survivor吗?关于卡表技术又有多少了解 认证与授权之Cookie、Session、Token、JWT Java面试准备之Spring框架系列二 Spring AOP核心概念

COPYRIGHT © 2022 hao同学的技术博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鄂ICP备2022007381号

鄂公网安备 42010302002449号