Talk:Greatest common divisor

From Rosetta Code
Revision as of 16:10, 17 August 2012 by rosettacode>Gerard Schildberger (→‎errors in programs: added Wikipedia citation of defintion of gcd(0,0)=0. -- ~~~~)

errors in programs

A few programs would attempt to divide by zero if the 2nd argument is 0 (zero).
In that special case, the absolute value of the first argument should be returned. -- Gerard Schildberger 15:39, 17 August 2012 (UTC)

unless it is 0 --Walterpachl 12:40, 17 August 2012 (UTC)

The special case of gcd(0,0) is usually defined to be 0, but some authors consider it to be undefined. When implementing the REXX version 1 example, the first definition (equal to zero) was chosen. So, for that case, |0| = 0.

From the Wikipedia page: http://en.wikipedia.org/wiki/Greatest_common_divisor

It is useful to define gcd(0,0)=0 and lcm(0,0)=0 because then the natural numbers become a complete distributive lattice with gcd as meet and lcm as join operation.

-- Gerard Schildberger 16:10, 17 August 2012 (UTC)



A number of examples don't show the results if either argument is negative. -- Gerard Schildberger 15:39, 17 August 2012 (UTC)

REXX Version 1

These results seem to be wrong:

the GCD of 14 and 0 and 7 is 14 should be 7
the GCD of 0 and 7 is 0 should be 7
the GCD of 0 and 0 is 0 should be ???

correct:

the GCD of 7 and 0 is 7

--Walterpachl 12:06, 17 August 2012 (UTC)

PL/I

should return a positive integer

and take care of gcd/0,0)

--Walterpachl 12:39, 17 August 2012 (UTC)