All pastes #2106801 Raw Edit

Anonymous

public text v1 · immutable
#2106801 ·published 2012-01-27 15:37 UTC
rendered paste body
% divideQR(+Num, +Denom, -Quot, -Rem)
% Num,Denom,Quot,Rem are Peano numbers
% Quot is the result of Integer division of Num/Denom
% Rem is the remainder (modulus) of Integer division of Num/Denom
% In other words: Num = Denom * Quot + Rem, 
%     where 0 <= Rem < Denom


minus(X,0,X).
minus(s(X),s(Y),Z):-
	minus(X,Y,Z).
divideQR(X,0,X,0).
divideQR(X,X,1,0).
divideQR(X,Y,Quot,Rem):-
	Rem2 is X mod Y,
	Quot2 is floor(X/Y),
	divideQR(X,Y,Quot2,Rem2).

divideQR(s(X),s(Y),Quot,Rem):-
	divideQR(X,Y,Quot,Rem),
	Rem is X mod Y,
	minus(X,Y,Quot).