Дискуссионный математический форумМатематический форум

Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 4 часа [ Летнее время ]
MathHelpPlanet.com RSS-лента Математического форума

Часовой пояс: UTC + 4 часа [ Летнее время ]


JavaScript: НОД и НОК (GCD & LCM)

JavaScript: НОД и НОК (GCD and LCM)


Наибольший общий делитель


Наибольший общий делитель (НОД, англ. GCD) нескольких целых чисел [math]a_1,a_2,\ldots,a_n[/math] есть наибольшее из натуральных чисел, которое делит каждое из данных чисел.


Например, [math]\operatorname{NOD}(15,30)=15[/math] и [math]\operatorname{NOD}(16,-48,72)=8[/math].


function NOD(A)
{
var n = A.length, x = Math.abs(A[0]);
for (var i = 1; i < n; i++)
{ var y = Math.abs(A[i]);
while (x && y){ x > y ? x %= y : y %= x; }
x += y;
}
return x;
}
// A - массив целых чисел (например, [57,0,-45,-18,90,447])

Наименьшее общее кратное


Наименьшее общее кратное (НОК, англ. LCM) нескольких целых чисел [math]a_1,a_2,\ldots,a_n[/math] есть наименьшее из натуральных чисел, которое делится на каждое из данных чисел.


Например, [math]\operatorname{NOK}(15,25)=75[/math] и [math]\operatorname{NOK}(16,-48,72)=144[/math].


function NOK(A)
{
var n = A.length, a = Math.abs(A[0]);
for (var i = 1; i < n; i++)
{ var b = Math.abs(A[i]), c = a;
while (a && b){ a > b ? a %= b : b %= a; }
a = Math.abs(c*A[i])/(a+b);
}
return a;
}
// A - массив целых чисел (например, [-50,25,-45,-18,90,447])

Часовой пояс: UTC + 4 часа [ Летнее время ]


Яндекс.Метрика

Copyright © 2010-2016 MathHelpPlanet.com. All rights reserved