
Так как язык не указан, приведу пример на 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).

1360
Объяснение:
Если предположить, что минимальная длина слова в его языке - 2 символа, то нужно посчитать, сколько может быть слов из 2, 3, 4 и 5 символов и сложить результаты.
4*4=16
4*4*4=64
4*4*4*4=256
4*4*4*4*4=1024
1024+256+64+16=1360
Вариант номер два (специально для тех, кто считает, что в этом языке могут быть слова длиной в одну букву):
Итак
Если предположить, что минимальная длина слова в его языке - 1 символ, то нужно посчитать, сколько может быть слов из 1, 2, 3, 4 и 5 символов и сложить результаты.
4
4*4=16
4*4*4=64
4*4*4*4=256
4*4*4*4*4=1024
4+1024+256+64+16=1364