Так как язык не указан, приведу пример на 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).
var f: text; s: string; i, l_line, slov: integer;
begin
Assign(f, 'd:\in.txt');
Reset(f);
while not Eof(f) do begin
Readln(f,s);
s := Trim(s);
l_line := Length(s);
if l_line <> 0 then begin
for i:=1 to l_line do
if s[i] = ' ' then slov := slov + 1;
slov := slov + 1;
end;
end;
Close(f);
Assign(f, 'd:\out.txt');
Rewrite(f);
Write(f, slov);
Close(f);
end.