请选择 进入手机版 | 继续访问电脑版
查看: 806|回复: 8

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

[复制链接]

1

主题

15

帖子

45

积分

新手上路

Rank: 1

积分
45
发表于 2021-12-28 16:25:31 来自手机 | 显示全部楼层 |阅读模式
a=int(input("请输入一个数字:"))
b=int(input("请再输入一个数字:"))
m=[]
if a>b:
    small=b
else:
    small=a
for i in range(1,small+1):
    if (a%i==0) and (b%i==0):
        m.append(i)
    continue
n=m[-1]
print ("%d和%d的最大公约数为:%d" %(a,b,n))
print ("%d和%d的最小公倍数为:%d" %(a,b,a*b//n))
回复

使用道具 举报

0

主题

10

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2021-12-30 16:31:31 | 显示全部楼层

#include <stdio.h>
int main()
{
        int a = 0;
        int b = 0;
        int t = 0;
        scanf("%d%d", &a, &b);//18 99
        int m = a;
        int n = b;
        while (a%b != 0){
                t = a%b;//余数 9
                a = b;//18
                b = t;//9
        }
        printf("最大公约数为:%d\n", b);//9
        printf("最小公倍数为:%d\n",m*n/b);
        return 0
}
回复

使用道具 举报

0

主题

12

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2021-12-30 20:29:32 | 显示全部楼层
def compare(num1,num2):
    if num1<num2:
        a=num1
        num1=num2
        num2=a
        b=num1*num2
        c=num1%num2
        while c!=0:
            num1=num2
            num2=c
            c=num1%num2
            b=b/num2
        print("最大公约数是:%d" %num2)
        print("最小公倍数是:%d" %b)
compare(2001,2022)
回复

使用道具 举报

0

主题

11

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2021-12-30 21:35:59 来自手机 | 显示全部楼层
#include <stdio.h> int main() {         int a = 0;         int b = 0;         int t = 0;         scanf("%d%d", &a, &b);//18 99         int m = a;         int n = b;         while (a%b != 0){                 t = a%b;//余数 9                 a = b;//18                 b = t;//9         }         printf("最大公约数为:%d\n", b);//9         printf("最小公倍数为:%d\n",m*n/b);         return 0 }  板凳何思烨 1 小时前 def compare(num1,num2):     if num1<num2:         a=num1         num1=num2         num2=a         b=num1*num2         c=num1%num2         while c!=0:             num1=num2             num2=c             c=num1%num2             b=b/num2         print("最大公约数是:%d" %num2)         print("最小公倍数是:%d" %b) compare(2001,2022)  我也说一句
回复

使用道具 举报

1

主题

9

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2021-12-31 13:45:32 | 显示全部楼层
def f(a,b):           #定义关于a,b的函数
    if a>b:          #比较两个数的大小,取小的数
        small = b
    else:
        small = a
    for i in range(1,small+1):  #循环small次,从小到大找到a,b的最大公约数
        if (a % i == 0) and (b % i == 0):
            d = i
    return d
x=int(input("请输入第一个数字")) #将第一个数赋予x
y=int(input("请输入第二个数字")) #将第二个数赋予y
gongyueshu = f(x,y)
gongbeishu =int(x*y/gongyueshu)
print("最大公约数是",gongyueshu,"最小公倍数是",gongbeishu)
回复

使用道具 举报

0

主题

14

帖子

44

积分

新手上路

Rank: 1

积分
44
发表于 2021-12-31 14:02:24 | 显示全部楼层
def gys (x, y):  
    for i in range(min(x, y),0,-1):   
        if (x % i == 0) and (y % i == 0):     
            gys = i      
            break                     
    return gys        

def gbs (x, y):      
    for j in range(max(x, y), x*y+1):         
        if (j % x == 0) and (j % y == 0):   
            gbs = j                    
            break               
    return gbs      

a = int(input("请输入第一个整数: "))
b = int(input("请输入第二个整数: "))      

print( a,"和", b,"的最大公约数为",gys(a, b))
print( a,"和", b,"的最小公倍数为", gbs(a, b))   
回复

使用道具 举报

0

主题

18

帖子

48

积分

新手上路

Rank: 1

积分
48
发表于 2022-1-2 23:49:00 来自手机 | 显示全部楼层
def f(a,b):           #定义关于a,b的函数     if a>b:          #比较两个数的大小,取小的数         small = b     else:         small = a     for i in range(1,small+1):  #循环small次,从小到大找到a,b的最大公约数         if (a % i == 0) and (b % i == 0):             d = i     return d x=int(input("请输入第一个数字")) #将第一个数赋予x y=int(input("请输入第二个数字")) #将第二个数赋予y gongyueshu = f(x,y) gongbeishu =int(x*y/gongyueshu) print("最大公约数是",gongyueshu,"最小公倍数是",gongbeishu)
回复

使用道具 举报

1

主题

19

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2022-1-11 22:20:00 | 显示全部楼层
def fun(num1, num2):
    if num1 < num2:
        num1, num2 = num2, num1
    vari1 = num1 * num2
    vari2 = num1 % num2
    while vari2 != 0:
        num1 = num2
        num2 = vari2
        vari2 = num1 % num2
    vari1/=num2
    print("{}".format(num2))
    print("{}".format(vari1))
回复

使用道具 举报

0

主题

12

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2022-1-11 22:29:32 来自手机 | 显示全部楼层
如图所示
IMG_20220111_222840.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表