重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
from string import digits
创新互联公司成立与2013年,先为沙依巴克等服务建站,沙依巴克等地企业,进行企业商务咨询服务。为沙依巴克企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
def zs():
(Tab缩进)a=input("number:")
(Tab缩进)for j in a:
(Tab缩进)(Tab缩进)if j not in [k for k in digits] or a[0] == "0":
(Tab缩进)(Tab缩进)(Tab缩进)return zs()
if __name__ == "__main__":
(Tab缩进)zs()
'''python运行效果
number:0
number:4.5
number:-4.5
number:xc
number:+4.5
number:+4
number:-4
number:20
'''
# 定义一个函数
def hcf(x, y):
"""该函数返回两个数的最大公约数"""
# 获取最小值
if x y:
smaller = y
else:
smaller = x
for i in range(1,smaller + 1):
if((x % i == 0) and (y % i == 0)):
hcf = i
return hcf
# 用户输入两个数字
num1 = int(input("输入第一个数字: "))
num2 = int(input("输入第二个数字: "))
print( num1,"和", num2,"的最大公约数为", hcf(num1, num2))
先求出两个正整数的质数乘积(单独一个函数)。
参考输出,例: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个数中所含素因子的最高次方之间的乘积。
参考资料来源:百度百科-最小公倍数
具体逻辑记不清了,最大公约数,就是求最大能整除这两个正整数吧,大概时思路如下:
def fun_gys(x,y):
t = min(x,y)
for i in range(2, t+1):
if x%i==0 and y%i==0:
print(i)
print("end")
最小公倍数,最大是两个数的积,最小能同时整除这两个数的值,代码如下:
def fun_gbx(x,y):
t = min(x,y)
for i in range(t,x*y+1):
if i%x==0 and i%y==0:
print (i)
print(end)
没有调试运行,思路就是这样的,请关注我,学习交流更多关于python编程内容。
# 辗转相除法求最大公约数
def gcd(a, b):
if a b:
a, b = b, a
while a % b != 0:
a, b = b, a % b
return b
gcd(21,49)
程序缩进如图所示