это, короче, решение диофантова уравнения: Ax - By = N
1. наливаем в A, переливаем в B, пока B не наполнится
2. выливаем из B
3. переливаем остаток из A в B
повторяем пункты 1-3, пока уровень в A или B не станет равным N
если решений нет, то НОД (A, B) не делит N нацело, так что алгоритм зацикливается.