Dmitriy40,
VAL, спасибо за помощь. Я разобрался с функциями valuation и ispower, a также с печатью в файл, но так и не осилил данный код.
Код:
ismn(n) = n++; n == 2^valuation(n, 2);
isok(n) = ismn(n) || (ispower(n, , &m) && ismn(m));
непонятно, зачем берется инкремент
Код:
ismn(n) = n++;
, далее происходит сравнение по которому определяется является ли n степенью двойки:
Код:
n == 2^valuation(n, 2);
, если n является степенью двойки, то куда пишется результат сравнения =1? Если нет, то куда 0?
где здесь условные операторы? Далее:
Код:
isok(n) = ismn(n) || (ispower(n, , &m) && ismn(m))
, также непонятно, это просто присваивание, или сравнение, или здесь также есть какие-то скрытые условные операторы.
Т.е. я совсем не понимаю как работает данный алгоритм, хотя понимаю, что делают отдельные функции, помогите пожалуйста разобраться.