输入两个正整数m和n,求其最大公约数和最小公倍数。

输入两个正整数m和n,求其最大公约数和最小公倍数。

//题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
//求最大公约数用辗转相除法
// 最小公倍数=输入的两个数之积除于它们的最大公约数
#include<stdio.h>
int main()
{
    int a,b,t,r,n;
    printf("请输入两个数字:\n");
    scanf("%d %d",&a,&b);//8 12
    if(a<b)
    {t=b;b=a;a=t;}// a=12 b=8
//    printf("a=%d  b=%d\n",a,b);
    r=a%b;//r=4
    n=a*b;//b=8*12=96  两个数的乘积 
//    printf("r=%d n=%d",r,n);
//辗转相除 
    while(r!=0)
    {
        a=b;//a=8
        b=r;//b=4
        r=a%b;//r=0 96/4=24
    }
    printf("这两个数的最大公约数是%d,最小公倍数是%d\n",b,n/b);
    
    return 0;
}

测试:

输入两个正整数m和n,求其最大公约数和最小公倍数。

上一篇:阿里云高校计划视觉AI五天训练营 Day03 学习笔记


下一篇:python 函数与函数式编程