square(N,S):-S is N*N. % s2(Number, Sum_Squares) s2(1,1). s2(N, _) :- N=<0, print('Silly Sum Squares'), fail. s2(N,SN) :- N>1, square(N, SqN), N1 is N-1, s2(N1, SN1), SN is SN1+SqN.