博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
求最小公倍数(华为机试,Python)
阅读量:4188 次
发布时间:2019-05-26

本文共 1491 字,大约阅读时间需要 4 分钟。

目录


 

题目描述

正整数A和正整数B的最小公倍数是指:能被A和B整除的最小的正整数值。设计一个算法,求A和B的最小公倍数。

 

输入/输出

输入描述:输入两个正整数A和B,例如

5 7

输出描述:输出A和B的最小公倍数,例如

35

 

解决方案

对于正整数A和B,假设这两个数字的最大值为max_number。则他们的最小公倍数范围在闭区间 [max,  A*B] 中。我们定义一个临时变量current = max_number,current依次递增到 A*B,在每一次递增时观察其是否是A,B的公倍数,若是则找到A和B的最小公倍数current。

 

对于current的递增有一个注意点。在current递增的过程中,依次自增1会浪费大量的时间。current只需要每次递增max就可以准确找到A和B的最小公倍数了。(即每次递增max_number值保证整除max,若找到同时能够整除两者则为最小公倍数)

 

代码

def max_number(number1: int, number2: int) -> int:    if number1 > number2:        return number1    return number2if __name__ == '__main__':    input_list = input().split(" ")    number1 = int(input_list[0])    number2 = int(input_list[1])    min = max_number(number1, number2)    max = number1 * number2    current = min    while current <= max:        if current % number1 == 0 and current % number2 == 0:            break        current += min    print(current)

 

代码走读

 

# 返回两个int数的较大值def max_number(number1: int, number2: int) -> int:    if number1 > number2:        return number1    return number2if __name__ == '__main__':    # 接收输入的数字,并把它们转化为整数    input_list = input().split(" ")    number1 = int(input_list[0])    number2 = int(input_list[1])    # 确定最小公倍数范围下限min和范围上限max    min = max_number(number1, number2)    max = number1 * number2    # 遍历current,current每次递增min(即A、B两个数中的较大值),若current同时满足整除A和B,则跳出循环,此时current为最小公倍数    current = min    while current <= max:        if current % number1 == 0 and current % number2 == 0:            break        current += min    print(current)

 

传送门

转载地址:http://bdsoi.baihongyu.com/

你可能感兴趣的文章
DISCUZ浅析之COOKIE篇
查看>>
实战DDD(Domain-Driven Design领域驱动设计:Evans DDD)
查看>>
SSH中各个框架的作用以及Spring AOP,IOC,DI详解
查看>>
openstack juno 配置vmware(vcenter、vsphere)
查看>>
远程debug调试(eclipse)之openstack windows
查看>>
PAAS平台对比:OpenShift VS CloudFoundry【51CTO调研报告】
查看>>
JAX-RS(java restful实现讲解)(转)
查看>>
Spring MVC与JAX-RS比较与分析
查看>>
openstack官方docker介绍
查看>>
头痛与早餐
查看>>
[转]在ASP.NET 2.0中操作数据::创建一个数据访问层
查看>>
Linux命令之chmod详解
查看>>
【java小程序实战】小程序注销功能实现
查看>>
webkit入门准备
查看>>
在Ubuntu 12.04 64bit上配置,安装和运行go程序
查看>>
ATS程序功能和使用方法详解
查看>>
常用Linux命令总结
查看>>
Tafficserver旁路接入方案综述
查看>>
在CentOS 6.3 64bit上如何从源码生成rpm包?
查看>>
利用lua中的string.gsub来巧妙实现json中字段的正则替换
查看>>