|
Алгоритм нахождения наибольшего общего делителя - "Алгоритм Эвклида"
Наибольший общий множитель нужен скажем для решения задач связаных с дробями,
или тогда, когда нужно сократить 2-а числа. Приведенный ниже алгоритм, является ни чем инным, как
"АЛГОРИТМОМ ЭВКЛИДА".
Наибольший общий множитель для двух чисел находится так :
определяем большее из чисел, заменяем большее число остатком разности большего и
меньшего из чисел, повторяем до тех пор пока одно из чисел не будет равно "0".
Результатом будет то число - которое не равно "0".
Все выше сказанное записывается так (как видно из кода результат
возвращается суммой двух чисел, это сделанно для упрощения, чтобы не проверять какое из чисел
стало "0", мы просто складываем число с "0" - результатом будет все равно число) :
int MOSTDIVISOR(int NUMERATOR, int DENOMINATOR)
{
while (NUMERATOR!=0 && DENOMINATOR!=0)
{
if (NUMERATOR > DENOMINATOR) NUMERATOR = NUMERATOR%DENOMINATOR;
else DENOMINATOR = DENOMINATOR%NUMERATOR;
}
return (NUMERATOR+DENOMINATOR);
}
Готовый вариант программы сможете найти, щелкнув в навигационной панели ссылку
Готовые программы.
|