登 录
知识1:两个正整数的乘积等于这两个数的最小公倍数与最大公约数的乘积
知识2:求最大公约数的欧几里得辗转相除法
#include <stdio.h> long fun(long a,long b); int main() { long m,n,a,c,i; scanf("%ld",&m); while(m--) { scanf("%ld",&n); c=1; for(i=1;i<=n;i++) { scanf("%ld",&a); c=fun(c,a); } printf("%ld/n",c); } system("pause"); return 0; } long fun(long a,long b) { long c,d,sw; c=(a>=b)?a:b; d=(a<=b)?a:b; while(c%d!=0) { sw=c%d; c=d; d=sw; } return (a/d)*b; }
抱歉!评论已关闭.