问题A Least Common Multiple
题目大意
多组测试数据,每组数据占一行。
每行第一个数据m代表这组有m的数求最小公倍数,后接m个数值。
思路
循环输入m个数,用一个变量记录当前的最小公倍数,之后每输入一个就与当时的最小公倍数变量一起求最小公倍数。
这题的测试数据应该是默认数据按照递增输入的,同时也就顺便保证了当前的最小公倍数比即将输入的数值小。
代码
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
int gcd(int a,int b){
if(b==0)
return a;
else
return gcd(b, a%b);
}
int main(int argc, const char * argv[]) {
int k,m,n;
scanf("%d",&k);
while(k--){
int temp=1;
scanf("%d",&m);
for(int i=0;i<m;i++){
scanf("%d",&n);
temp=n/gcd(n,temp)*temp;
}
printf("%d\n",temp);
}
return 0;
}