?- trib(a,N).
ERROR (or No)  % [0.2 marks]

?- trib(X,0).
ERROR (or No)  % [0.2 marks]

?- trib(0,3).

No or "out of stack" error  % [0.2 marks]

?- trib(0,N).

N = 0  % [0.2 marks]

?- trib(1,N).

N = 1  % [0.2 marks]

?- trib(2,N).

N = 0  % [0.2 marks]

?- trib(3,N).

N = 1  % [0.2 marks]

?- trib(12,N).

N = 230  % [0.2 marks]

?- trib(50,N).

N = 2620397211992  % [0.2 marks]

?- trib(2009,N).

N = 735574921904114521827557006124061717011770134842714364289295875881930537834991609267588315088566122793939708231632692713561888829637518835801219907253501138151075003414547899171818895815265524640050304962169426536173664926549387883650546024352214579902578526630041763976923019790742620742221951980386369846822310386112427854644125532813816555816934359041649524938770437284219111630788399203084481231615886843803489727391251540620697177718676855312490283223335136044939840151199414731113585887231754619754578735511207697901721938221
  % [0.2 marks]

?- trib(-1,N).

N = -1  % [0.2 marks]

?- trib(-2,N).

N = 2  % [0.2 marks]

?- trib(-3,N).

N = -1  % [0.2 marks]

?- trib(-24,N).

N = -1404  % [0.2 marks]

?- trib(-101,N).

N = -743995515083  % [0.2 marks]

