最大公约数与最小公倍数
求最小公倍数一种办法通过求最大公约数求得 再通过公式(最小公倍数=两个数的乘积/最大公约数)
最大公约数 通过辗转相除法求得。
参考资料:维基百科 -- 辗转相除法
最大公约数 通过辗转相除法求得。
#include <stdio.h> int Gcd (int a, int b){ int tmp; while (b != 0){ tmp = a; a = b; b = tmp % b; } return a; }//辗转相除法求最大公约数。 int main(void){ int n; int a; int b; int m; while (scanf ("%d", &n) != EOF){ while (n-- != 0){ scanf ("%d%d", &m, &a); --m; while (m != 0){ scanf ("%d", &b); a = a / Gcd (a, b) * b; --m; } printf ("%d\n", a); } } return 0; }