Module:Rational: Difference between revisions

Plumtree (talk | contribs)
m Bugfix
gcd no longer needs to be defined here
Line 2: Line 2:
local u = require('Module:Utils')
local u = require('Module:Utils')
local p = {}
local p = {}
-- find the gcd of two integers
function p.gcd(x, y)
if x < y then
x, y = y, x
end
while y > 0 do
x, y = y, x % y
end
return x
end


-- construct a rational number n/m
-- construct a rational number n/m
Line 619: Line 608:
return false
return false
end
end
local function gcd(x, y)
 
if x < y then
x, y = y, x
end
while y > 0 do
x, y = y, x % y
end
return x
end
local total_power = nil
local total_power = nil
for factor, power in pairs(a) do
for factor, power in pairs(a) do
if type(factor) == 'number' then
if type(factor) == 'number' then
if total_power then
if total_power then
total_power = gcd(total_power, math.abs(power))
total_power = u._gcd(total_power, math.abs(power))
else
else
total_power = math.abs(power)
total_power = math.abs(power)