仕様に忠実でなかったので訂正します。
「10個の数字を入力する」が反映されていませんでした。
findallの中にfor/3を書くと10個に達しないうちに改行がきた場合など
に不都合が生じます。それでfindall/3の使用を断念。
get_integers(L) :- get_code(C),get_integers(10,C,L),!.
get_integers(1,C,[C1]) :- toint(C,C1).
get_integers(N,C,[C1|R]) :- toint(C,C1),get_code(C2),M is N-1,get_integers(M,C2,
R).
get_integers(N,C,L) :- get_code(C2),get_integers(N,C2,L).
toint(C,X) :- C>=48,C=<57,X is C-48.

やれやれ、面倒なこととなりました。