чуть сократить, если особые варианты))) первое правило, если число кратное, то на конце всегда будет 0. второе, если число - степень двойки(например, 8 2**3=8), то в двоичной оно представляется, как 1 и количество 0 соответствует степени(для все той же в 8 это будет 1000, для 2**4=16 - 10000). ну соответственно, если +(-) 1 от числа степени 2, то несложно посчитать, что это будут с 1 на конце и в начале, а между ними количество 0, на 1 меньше степени(для 9 1001, для 17 10001 и т.д. это все для +1), если же -1, то соответственно число количество 1 равное показателю степени(для 7 111, для 15 1111). ну примерно так меня учили перед экзаменом.