%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Programma per il calcolo ripetuto del quadrato di un numero 
% naturale; se il numero fornito e' negativo, termina
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% quadrato(X,Y): Y e' il quadrato di X

quadrato(X,Y) :-
    Y is X * X.


%%% Interfaccia utente 

start :-
    write('Dai un numero (negativo per smettere)'), nl,
    read(X),
    quadrato_ripeti(X).

quadrato_ripeti(X) :-
    X < 0,
    write('Arrivederci!').
quadrato_ripeti(X) :-
    X >= 0,
    quadrato(X,Q),
    write('Il quadrato di '), write(X), write(' e'' '), write(Q),
    nl,nl,
    start.


    