/*
* 题目详情
问题描述:
给你n组测试数据,每组测试数据有m(0<m<=100)个正整数,求出m个数的最小公倍数。
Input:
输入n,随后有n行,每行开头输入m,m之后有m个正整数,相邻数之间用空格隔开。
Output:
每行输出一个数(该数在int范围内,同时,数前面加个“Case 1: ”,表示第几个Case,如“Case 1: 6”),
相邻两组结果之间有一个空行,输出完最后一个结果后,再加一个空行,具体形式见样例。
答题说明
输入样例:
3
2 2 3
3 2 5 7
5 1 2 3 4 5
输出样例:
Case 1: 6
Case 2: 70
Case 3: 60
*
*/
//C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 最小公倍数
{
class Program
{
/// <summary>
/// 求最小公倍数
/// The least common multiple
/// 算法原理:公因子逐项累积,a、b余项最终不含公因子,此时三者之积为最小公倍数
/// </summary>
/// <param name="a">参数1</param>
/// <param name="b">参数2</param>
/// <returns>最小公倍数</returns>
static int lcm(int a, int b)
{
int cd = 1; //The common denominator存储累积公约数,两数中无公约数时成为最大公约数
if (a == 0 || b == 0) return 0;
if (a == 1) return b;
if (b == 1) return a;
if (a == b) return a; //相等时
if (a > b) //去除最大公约数,公因子逐项去除
{
if (a % b == 0) return a; //先判断是否整除