Greatest common divisor: Difference between revisions

Content added Content deleted
(Nimrod -> Nim)
Line 1,882: Line 1,882:
=3</lang>
=3</lang>


=={{header|Nimrod}}==
=={{header|Nim}}==
Ported from Pascal example
Ported from Pascal example
===Recursive Euclid algorithm===
===Recursive Euclid algorithm===
<lang nimrod>proc gcd_recursive(u, v: int64): int64 =
<lang nim>proc gcd_recursive(u, v: int64): int64 =
if u %% v != 0:
if u %% v != 0:
result = gcd_recursive(v, u %% v)
result = gcd_recursive(v, u %% v)
Line 1,891: Line 1,891:
result = v</lang>
result = v</lang>
===Iterative Euclid algorithm===
===Iterative Euclid algorithm===
<lang nimrod>proc gcd_iterative(u1, v1: int64): int64 =
<lang nim>proc gcd_iterative(u1, v1: int64): int64 =
var t: int64 = 0
var t: int64 = 0
var u = u1
var u = u1
Line 1,901: Line 1,901:
result = abs(u)</lang>
result = abs(u)</lang>
===Iterative binary algorithm===
===Iterative binary algorithm===
<lang nimrod>proc gcd_binary(u1, v1: int64): int64 =
<lang nim>proc gcd_binary(u1, v1: int64): int64 =
var t, k: int64
var t, k: int64
var u = u1
var u = u1