求两个数的最大公约数
题目内容:
输入两个正整数num1和num2(不超过1000),求它们的最大公约数并输出。
我们定义求最大公约数的函数为hcf,给出程序主体如下:num1=int(input("")) num2=int(input("")) print(hcf(num1,num2))
请补充完成hcf函数的定义。
输入格式:
共两行,每一行输入一个不超过1000的正整数。
输出格式:
共一行,输出一个正整数。
输入样例:
6
8
输出样例:
2
解法
#方法一:
def hcf(a,b):
if (a == 0) or (b == 0):
t = a if a > b else b
print("%d,%d两个数的最大公约数是:%d" %(a,b,t))
return
elif a > b:
c = b
else:
c = a
while(((a%c)!=0) or (b%c)!=0):
c = c - 1
print("%d,%d两个数的最大公约数是:%d" %(a,b,c))
if __name__ == "__main__":
#输入两个数,以空格隔开
a,b = map(int,input().split())
#print("%d,%d两个数的最大公约数是:%d" %(a,b,gcd(a,b)))
hcf(a,b)
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)):
hcf1 = i
return hcf1
# 用户输入两个数字
num1=int(input("第一个"))
num2=int(input("第二个"))
print( num1,"和", num2,"的最大公约数为", hcf(num1, num2))
求两个数的最小公倍数
题目内容:
输入两个正整数num1和num2(不超过500),求它们的最小公倍数并输出。
我们定义求最小公倍数的函数为lcm,给出程序主体如下:num1=int(input("")) num2=int(input("")) print(lcm(num1,num2))
请补充完成lcm函数的定义。
输入格式:
共两行,每一行输入一个不超过500的正整数。
输出格式:
共一行,输出一个正整数。
输入样例:
4
6
输出样例:
12
解法:
def lcm(n1,n2):
alist=[]
for i in range(1,min(n1,n2)+1):
if n1%i==0 and n2%i==0:
alist.append(i)
gcd=int(max(alist))
return gcd
num1=int(input('请输入第一个正整数:'))
num2=int(input('请输入第二个正整数:'))
print('两个数的最小公倍数是:',int((num1*num2)
标签:两个,num1,num2,公倍数,int,最大公约数,input,输入
From: https://blog.csdn.net/qq_74916568/article/details/137088086