GCD :=  proc(p::integer, q::integer)
	local p1, q1;
	p1 := p;
	q1 := q;
	if ( p1 <= 0 or q1 <= 0 ) then
	   RETURN (`Works only with positive integers`);
	else
	   while ( p1 <> q1 ) do
	       if ( p1 > q1 ) then
		  p1 := p1 - q1;
	       else
		  q1 := q1 - p1;
	       fi;
	   od;
	   RETURN (p1);
	fi;
end;
