Общий численный делитель

199
28 марта 2017, 13:10

Здравствуйте.

Есть два числа (к примеру, 1200 и 800). Как найти их общий делитель? То есть, как найти число, на которое можно поделить эти два и чтобы после деления вышло целое число?

Детальное описание:
Берём два числа: 1200 и 800. Далее нужно найти число, после деления на которое выйдет целое число. К примеру, 200 (1200 / 200 = 6 - целое число; 800 / 200 = 4 - целое число).

Попробовал сделать циклом, но толкового не вышло. Оно не всегда находит число.

function isInteger(num) { 
  return (num ^ 0) === num; 
}; 
 
var num = [1228, 862], 
    divider = null; 
 
for(var i = 80; i < num[0]; i++){ 
  if( isInteger(num[0] / i) && isInteger(num[1] / i) ){ 
    divider = i; 
  }; 
}; 
 
console.log( divider );

Так как найти больший делитель, после которого будет целое число?

Answer 1

Алгоритм Еклида для нахождения наибольшего общего делителя:

var num = [1228, 862];
while(num[0] !== 0 && num[1] !== 0){
  if(num[0] > num[1]){
     num[0] = num[0] % num[1];
  }else{
     num[1] = num[1] % num[0];
  }
}
var divider = num[0] + num[1];
READ ALSO
Не работает e.preventDefault() в Firefox

Не работает e.preventDefault() в Firefox

Пишу проект на Yii2, и делаю одну кнопку, "Оценить", пользователь на нее нажимает, и аяксом данные должны передаться в контроллер и экшн, в опере...

330
Передача файла из input через AJAX

Передача файла из input через AJAX

Пытаюсь передать картинку через AJAXЕсть следующий код:

333
Deffered и delay

Deffered и delay

Всем добрый день, пытаюсь реализовать такую часть кода, нужно чтобы GJ выводилось после задержки в 3500, но почему то не работает, подскажите,...

242