Lowest Common Multiple Plus

Problem Description
求n个数的最小公倍数。

Input
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。

Output
为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。

Sample Input
2 4 6
3 2 5 7

Sample Output
12
70

Here is the program for your reference, however I have no time to test, just build seccessfully. Sorry for that you can test it by yourself.

#include "stdafx.h"
#include
#include

using namespace std;

unsigned long int GreatestgCommonDivisor(unsigned long int a, unsigned long int b)
{
unsigned long int Max = 0, Min = 0, gcd = 0;
Max = (a > b) ? a : b;
Min = (a < b) ? a : b;

gcd = Max;

while (1)
{
    if (gcd % Min == 0)
        break;
    gcd += Max;
}
return gcd;

}

int main()
{
unsigned int Number = 0, i = 0;
unsigned long int data = 0, gcd = 0;

std::vector<long int>               vecData, vecGCD;
std::vector<long int>::iterator     itervecGCD;

while (1)
{
    cin >> Number;
    if (Number < 2)
    {
        cout << "there is not enough data" << endl;
        return   0;
    }
    for (i = 0; i < Number; i++)
    {
        cin >> data;
        vecData.push_back(data);
    }
    gcd = (vecData[0], vecData[1]);
    for (i = 2; i < Number; i++)
    {
        gcd = (gcd, vecData[i]);
    }
    vecGCD.push_back(gcd);
}

//Print output
itervecGCD = vecGCD.begin();
while (itervecGCD != vecGCD.end())
{
    cout << *itervecGCD << "\n";
}

return 0;

}

you can add any break condition in the while(1) to end of the input,
and obviously the 2 include files are iotream and vector because "<>"can not display

Sorry I'm a littlle busy, so I have not test for you, just now I've fix some bugs and test through, you can end input with ctrl + z
here is the program
#include "stdafx.h"
#include
#include

using namespace std;

unsigned long int GreatestgCommonDivisor(unsigned long int a, unsigned long int b)
{
unsigned long int Max = 0, Min = 0, gcd = 0;
Max = (a > b) ? a : b;
Min = (a < b) ? a : b;

gcd = Max;

while (1)
{
    if (gcd % Min == 0)
        break;
    gcd += Max;
}
return gcd;

}

int main()
{
unsigned int Number = 0, i = 0;
unsigned long int data = 0, gcd = 0;

std::vector<long int>               vecData, vecGCD;
std::vector<long int>::iterator     itervecGCD;

while (cin >> Number)
{
    if (Number < 2)
    {
        cout << "there is not enough data" << endl;
        break;
    }
    vecData.clear();
    for (i = 0; i < Number; i++)
    {
        cin >> data;
        vecData.push_back(data);
    }
    gcd = GreatestgCommonDivisor(vecData[0], vecData[1]);
    for (i = 2; i < Number; i++)
    {
        gcd = GreatestgCommonDivisor(gcd, vecData[i]);
    }
    vecGCD.push_back(gcd);
}

//Print output
itervecGCD = vecGCD.begin();
while (itervecGCD != vecGCD.end())
{
    cout << *itervecGCD << endl;
    itervecGCD++;
}

return 0;

}