最小公倍数及最大公约数

求最大公约数  辗转相余法

求两数的最大公约数,名义上是辗转相除,其实就是取余

迭代关系为m,n两数  m%n看余数是不是0,如果不是0,m=n;n=r;

如果r=0;此时的n就为最大公约数

 完整代码:

#include <stdio.h> //最大公约数
int main()      
{
	int m = 18;
	int n = 24;
	int r = 0;

	while (r = m % n)
	{
		m = n;
		n = r;
	}

	printf("%d\n", n);
	return 0;
}

最小公倍数

对于正整数a,正整数b,假设他们的正整数最小公倍数是m

则m/a = i ,因为m为最小公倍数,所以i为1,2,3、、、、这些数字,也就是商。

m=a*i; 

再用a*i %b   i = 1 i++;

如果a*i %b ==0;

则此时a*i为最小公倍数;

完整代码

#include <stdio.h>
int main() 
{
    int a, b;
    scanf("%d %d", &a, &b);
    int i =1;
    while(a*i % b != 0)
    {
        i++;
    }
    printf("%d",a*i);

    return 0;
}

定理:

最小公倍数X最大公约数=aXb

如果忘记一个,直接算出另一个,用axb一除 ,就算出来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值