求两个数的最大公约数 和 求两个数的最小公倍数

文章介绍了如何在Python中编写函数来计算两个正整数的最大公约数(GCD)和最小公倍数(LCM),通过欧几里得算法和列举法分别实现hcf和lcm函数,适用于不超过1000和500的整数输入。
摘要由CSDN通过智能技术生成

求两个数的最大公约数

题目内容:

输入两个正整数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)

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做个尘世俗人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值