
首先给大家分享一些关于求余的公式
最基础的“%”求余符号。
( 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);
}
本文发布于:2024-02-27 18:01:57,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1709109644114094.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
| 留言与评论(共有 0 条评论) |