Так как язык не указан, приведу пример на SWI-Prolog.
Код:
read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).будем считать, что каждое четное однозначное число это определенный алфавит, мощность которого обозначается буквой N
N=2^i, подставим вместо N 2, получаем 2=2^i запишем левую часть как степень числа 2: 2^1=2^i, отсюда i=1 бит
подставим теперь вместо N 4, получаем 4=2^i запишем левую часть как степень числа 2: 2^2=2^i, отсюда i=2 бит
подставим теперь вместо N 6, получаем 6=2^i число 6 не является точной степенью числа 2, поэтому ответ найдем по таблице неточных степеней числа 2- i=2,58 бит
подставим теперь вместо N 8, получаем 8=2^i запишем левую часть как степень числа 2: 2^3=2^i, отсюда i=3 бит
задача2
запишем условие: мощность компьютерного алфавита равна N=256
I=120 бит, К-?
решение: найдем вес одного символа 256=2^i, i=8 бит
разделим I на i и получим кол-во символов в тексте 120/8=15
изображения
Объяснение:
вроде бы так