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

[any] Pascal: (без хранения введённых чисел => "эффективная")
var a, i, x: integer; begin for i := 1 to 6 do begin read(a); if a>0 then x := x + 1 else if a<0 then x := x - 1 end; if x>0 then write('Больше положительных') else if x<0 then write('Больше отрицательных') else write('Одинаково')end.PascalABC.NET: (с хранением введённых чисел в массиве)
## var a := ReadArrInteger(6); var x := a.Sum(x -> x>0 ? 1 : -1); if x=0 then Write('Одинаково') else Print('Больше', x>0 ? 'положительных' : 'отрицательных')Пример работы:

