Greatest common divisor: Difference between revisions
Content added Content deleted
(Added Frege example for GCD) |
(Added TypeScript example for GCD) |
||
Line 3,858: | Line 3,858: | ||
<lang bash>$ txr -c @(bind g @(gcd (expt 2 123) (expt 6 49))) |
<lang bash>$ txr -c @(bind g @(gcd (expt 2 123) (expt 6 49))) |
||
g="562949953421312"</lang> |
g="562949953421312"</lang> |
||
=={{header|TypeScript}}== |
|||
Iterative implementation |
|||
<lang javascript>function gcd(a: number, b: number) { |
|||
a = Math.abs(a); |
|||
b = Math.abs(b); |
|||
if (b > a) { |
|||
let temp = a; |
|||
a = b; |
|||
b = temp; |
|||
} |
|||
while (true) { |
|||
a %= b; |
|||
if (a === 0) { return b; } |
|||
b %= a; |
|||
if (b === 0) { return a; } |
|||
} |
|||
}</lang> |
|||
Recursive. |
|||
<lang javascript>function gcd_rec(a: number, b: number) { |
|||
return b ? gcd_rec(b, a % b) : Math.abs(a); |
|||
}</lang> |
|||
=={{header|uBasic/4tH}}== |
=={{header|uBasic/4tH}}== |