Рассмотрим следующий фрагмент программы:
цел m, n; . . . дано: m >= 0 и n >= 0 цел a, b, c; a := m; b := n; c := 1; цикл пока a != 0 и b != 0 | если a четное и b четное | | то a := a / 2; | | b := b / 2; | | c := c * 2; | иначе если a четное | | то a := a / 2; | иначе если b четное | | то b := b / 2; | иначе | | если a > b | | | то a := a - b; | | | иначе b := b - a; | | конец если | конец если конец цикла ответ := c * (a + b);
Какое условие является инвариантом цикла?(Через НОД и НОК обозначены наибольший общий делитель инаименьшее общее кратное.)