求N个正整数的最大公约数和最小公倍数

xiaoxiao2021-02-28  124

废话不多说,看代码,有不懂处留言即可。

#include <cstdio> const int N = 15; int Gcd(int a, int b) { while (b ^= a ^= b ^= a %= b); return a; } int Commom_Gcd(const int *num, int &n) { int temp = num[0]; for (int i = 1; i < n; ++i) temp = Gcd(temp, num[i]); return temp; } int Commom_Lcm(const int *num, int &n) { int temp = num[0]; for (int i = 1; i < n; ++i) temp = temp / Gcd(temp, num[i]) * num[i]; return temp; } int main() { int t; scanf("%d", &t); int n, num[N], i,j; for ( j=1; j<=t; ++j ){ printf("Test %d:\n", j); scanf("%d", &n); for ( i = 0; i < n; ++i ) scanf("%d", &num[i]); printf("%d\n%d\n", Commom_Gcd(num, n),Commom_Lcm(num,n) ); } return 0; }

转载请注明原文地址: https://www.6miu.com/read-31207.html

最新回复(0)