0
点赞
收藏
分享

微信扫一扫

最大公约数与最小公倍数

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdlib.h>
#include <stdio.h>
void CompareSizes(int* x, int* y)//比较并排列大小
{
    int a = *x;
    int b = *y;
    if (a > b)
    {;}
    else
    {
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
    }
    *x = a;
    *y = b;
}
int Gcd(int x, int y)  //辗转相除法求最大公约数(递归)
{
    if (y == 0)
	{
		return x;
	}
	else
	{
		return Gcd(y, x % y);
	}
}
/*
int Gcd(int x, int y)  //辗转相除法求最大公约数(while循环)
{
    int r = 0;
    while (r = x % y)
    {
        x = y;
        y = r;
    }
    return y;
}
*/

int Lcm(int x, int y)       //试除法求最小公倍数 
{
    int r = 1;
    while((x*r)%y)
    {
        r++;
    }
    
    return x * r;
}

int main()
{
    int a, b ;
    scanf("%d%d", &a, &b);
    CompareSizes(&a, &b);
    printf("%d ", Gcd(a, b));          //最大公约数
    printf("%d", Lcm(a, b));          //最小公倍数                 
   
    return 0;
}
举报

相关推荐

0 条评论