本文目录一览:
- 1、python编写2个函数代码,实现求最小公倍数和最大公约数的功能
- 2、有没有懂python的知道我这里错哪了?
- 3、定义一个函数,求两个正整数的最小公倍数(用Python)求代码
- 4、python求m和n的最小公倍数
- 5、python求多个数的最小公倍数
- 6、python中math.lcm不能直接引用吗
python编写2个函数代码,实现求最小公倍数和最大公约数的功能
函数定义:
Common_multiple(number1, number2): # 求两个数的最小公倍数
Maximum_common_divisor(*number): # 求任意多个数的最小公倍数
Minimum_common_multiple(*number): # 求任意多个数的最大公因数
程序缩进如下:
运行结果展示:
函数具体代码:缩进版本点击自取
def Common_multiple(number1, number2): # 求两个数的最小公倍数
while number1 % number2 != 0:
number1, number2 = number2, (number1 % number2)
return number2
def Maximum_common_divisor(*number): # 求任意多个数的最小公倍数
while len(number) 1:
number = [Common_multiple(number[i], number[i+1]) for i in range(0, len(number)-1)]
return number[0]
def Minimum_common_multiple(*number): # 求任意多个数的最大公因数
while len(number) 1:
number = [number[i]*number[i+1]/Common_multiple(number[i], number[i+1]) for i in range(0, len(number)-1)]
return number[0]
有没有懂python的知道我这里错哪了?
你的程序我帮你改完了(改动的地方见注释)
def gcd(x,y):
if xy:
smaller=y
else:
smaller=x
for i in range(smaller,0,-1): #这里从smaller到1取值
if x%i==0 and y%i==0:
return i #这里返回i
#break #这里去掉这句
def lcm(x,y):
if xy:
greater=x
else:
greater=y
while True:
if greater%x==0 and greater%y==0:#这里greater除以x,y,而不是相反
return greater #这里返回greater
#break #这里去掉这句
greater+=1
#print({[]**[],format(x,y)) #这里去掉这句
n1,n2=map(int,input().split())#这里对输入数据进行切分后转int型赋值n1,n2
#n2=int(input()) #这里去掉这句
print(gcd(n1,n2),lcm(n1,n2))
源代码(注意源代码的缩进)
定义一个函数,求两个正整数的最小公倍数(用Python)求代码
先求出两个正整数的质数乘积(单独一个函数)。
参考输出,例:40返回值是{"2":3,"5":1}意思是2的3次方*5,就是合并,并且保留指数最大的就行。
def gcd(a, b): # 求最大公约数
x = a % b
while (x != 0):
a, b = b, x
x = a % b
return b
def lcm(a,b): # 求最小公倍数
return a*b//gcd(a,b)
扩展资料:
最小公倍数的适用范围:分数的加减法,中国剩余定理(正确的题在最小公倍数内有解,有唯一的解)。因为,素数是不能被1和自身数以外的其它数整除的数;素数X的N次方,是只能被X的N及以下次方,1和自身数整除。所以,给最小公倍数下一个定义:S个数的最小公倍数,为这S个数中所含素因子的最高次方之间的乘积。
参考资料来源:百度百科-最小公倍数
python求m和n的最小公倍数
# 辗转相除法求最大公约数
def gcd(a, b):
if a b:
a, b = b, a
while a % b != 0:
a, b = b, a % b
return b
# 求最小公倍数
def lcm(a,b):
return a * b // gcd(a,b)
python求多个数的最小公倍数
"""
最小公倍数=两整数的乘积÷最大公约数
思路:输入多个整数,依次两个数求最小公倍数,将前两个数的最小公倍数和下一个数再次求最小公倍数,求到最后就是结果
"""
def func(*args):
size = len(args)
idx = 1
i = args[0]
while idx size:
j = args[idx]
# 用辗转相除法求i,j的最大公约数m
b = i if i j else j # i,j中较小那个值
a = i if i j else j # i,j中较大那个值
r = b # a除以b的余数
while(r != 0):
r = a % b
if r != 0:
a = b
b = r
f = i*j/b # 两个数的最小公倍数
i = f
idx += 1
return f
python中math.lcm不能直接引用吗
不能。Python由荷兰数学和计算机科学研究学会的GuidovanRossum1990年代初设计,作为一门叫做ABC语言的替代品。math库中的函数包括math.lcm不能直接使用,需要首先使用保留字import引用该库才可进行使用。