最大公约数和最小公倍数是数学中一个常见的概念,在C++中也可以用来求解这些问题。C++中求最大公约数和最小公倍数有两种方法:
辗转相除法是一种求最大公约数的算法,它的基本思想是:用两个数中的较大数去除另一个数,所得的余数继续和另一个数进行除法,直到余数为0,的除数就是最大公约数。
int gcd(int a, int b) { int c; while (b != 0) { c = a % b; a = b; b = c; } return a; }
更相减损术是一种求最大公约数的算法,它的基本思想是:两个数不断相减,直到两个数相等,这个数就是最大公约数。
int gcd(int a, int b) { while (a != b) { if (a > b) a = a - b; else b = b - a; } return a; }
求最小公倍数的方法是:用两个数的乘积除以它们的最大公约数,所得的结果就是最小公倍数。
int lcm(int a, int b) { return a * b / gcd(a, b); }
以上就是C++中求最大公约数和最小公倍数的方法,通过简单的程序就可以解决这些问题。
本文链接:http://task.lmcjl.com/news/12420.html