Сообщение от Deff
|
Вообще эта задача поиска наименьшего общего кратного
|
Вы имеете ввиду наибольший общий делитель (НОД)?
Если да, то с ним как раз нет проблем.
function NOD(a,b){ while ((a!=0) && (b!=0)) {if (a>b) {a%=b} else {b%=a}} return (a+b) }
Например, для трех чисел
n1, n2, n3 (целые любого знака)
NOD( NOD(Math.abs(n1),Math.abs(n2)), Math.abs(n3) )
для четырех
n1, n2, n3, n4
NOD( NOD(NOD(Math.abs(n1),Math.abs(n2)), Math.abs(n3)), Math.abs(n4) )
Самое интересное
в пунктах 2,3,4
Цитата:
|
2. если A_1≠0, то на выходе он >0, если A_1=0, то на выходе A_2>0; если A_1=0 и A_2=0, то на выходе A_3>0 и т.д.; т.е. чтобы после упрощения первый, не равный нулю коэффициент был положительным;
3. если какой-либо коэффициент, кроме A_n, равен 1 (или -1 с учетом п.2), то не возвращать его.
4. если какой-либо коэффициент A_k, равен 0, то не возвращать A_k*x_k.
|