/* 求一组正整数的最小公倍数 */ int GetMinMonMultipleOfArray(int aNum[], int nLength) { int i = 0, j = 0; int nMax = aNum[0]; for ( ;i < nLength;++i ) { if ( nMax < aNum[i] ) { nMax = aNum[i]; } } for ( i = 0;i < nLength;++i ) { if ( nMax == aNum[i] ) continue; if ( nMax % aNum[i] ) { break; } } if( i >= nLength ) return nMax; nMax = aNum[0]*aNum[1]; int nCnt = 0; for( i = 2;i < nLength;++i) { if ( !((nMax > aNum[i] ? nMax:aNum[i]) % (nMax < aNum[i] ? nMax:aNum[i])) ) { nMax = (nMax > aNum[i] ? nMax : aNum[i]); continue; } if ( nCnt = GetMaxCommonDivisor(nMax, aNum[i]) )//有公约数 { nMax = nCnt*(nMax > aNum[i] ? nMax:aNum[i]); } else { nMax *= aNum[i]; } } return nMax; } /* 求两数最大公约数 */ int GetMaxCommonDivisor(int x, int y) { int nMinNum = x < y ? x : y; int i = 2; int nCnt = 0; for ( ;i < nMinNum;++i ) { if ( !(x % i) && !(y % i) ) { nCnt = i; } } return nCnt; }