#include <stdio.h> int n,m; int minmul(int [],int); int minmul1(int,int); int maxi(int ,int); int main() { int t; scanf("%d",&t); while (t--) { scanf("%d %d",&n,&m); int a[101]={0}; int i; for(i=0;i<n;i++) scanf("%d",&a[i]); printf("%d\n",minmul(a,m)); } return 0; } int minmul(int b[],int num) { int flag,term; int i,j; for(j=n-1;j>1;j--) { flag=0; for(i=0;i<j;i++) { if(b[i]>b[i+1]) { term=b[i]; b[i]=b[i+1]; b[i+1]=term; flag=1; } } if(!flag) break; } int mul=b[0],x; for(i=0;i+1<num;i++) { x=minmul1(mul,b[i+1]); mul=x; } return mul; } int minmul1(int a,int b) { int c; c=a*b/maxi(a,b); return c; } int maxi(int a,int b) { int c; c=a%b; while (c!=0) { a=b; b=c; c=a%b; } return b; }
求多个数的最小公倍数
最新推荐文章于 2023-07-04 20:10:51 发布