编程入门-最大公约数

本文介绍了最大公约数的概念,并分享了几个关于求余的数学公式,强调它们在解决算法问题中的重要性。接着,通过一道编程题说明如何使用__gcd()函数求解最大公约数和最小公倍数,讲解了gcd()函数的工作原理。
摘要由CSDN通过智能技术生成

最大公约数

首先给大家分享一些关于求余的公式
最基础的“%”求余符号。

  • ( a+b ) % p = ( a%p + b%p ) % p

  • ( a-b ) % p = ( a%p - b%p ) % p

  • ( a*b ) % p = ( a%p * b%p ) % p

  • ( a^b ) % p = ( (a%p)^b ) % p

  • ( (a+b)%p + c ) % p = ( a + (b+c)%p ) % p

  • ( (a*b)%p * c) % p = ( a * (b *c)%p ) % p

  • ( a+b ) % p = ( b+a ) % p

  • ( a* b ) % p =( b*a ) % p

  • ( (a+b)%p * c )%p = ( (ac)%p + (bc)%p )%p

  • LCM(a,b)(最小公倍数)=a*b / GCD(a,b)(最大公约数)

这几个公式在遇到算法题求模时用处很大。

接下来看题目:

输入两个正整数m和n,求其最大公约数和最小公倍数。在这里插入图片描述
这是一道编程入门题,求解最大公约数及最小公倍数,我们这里直接调用函数__gcd()来求解,图片已给出,大家也不要忘记引入头文件。
gcd()就是典型的利用求余的库函数。经过不断求余确定最大公约数,当余数为1时,结束,此时另外一个不为1的便是所求最大公约数。最小公倍数也可以直接由上边给出的公式a*b/__gcd(a,b)求出来!

以下给出GCD()函数代码

int gcd(int a,int b)
{
     return !b?a:gcd(b,a%b);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值