Module:Rational: Difference between revisions
mNo edit summary |
m from_ket() implemented |
||
Line 45: | Line 45: | ||
end | end | ||
return val | return val | ||
end | |||
-- create a rational number from a string of whitespace-separated integers | |||
function p.from_ket(s) | |||
local factor = 1 | |||
local a = { sign = 1 } | |||
for i in s:gmatch('[%-%d]+') do | |||
local power = tonumber(i) | |||
if power == nil then return nil end | |||
-- find the next prime | |||
factor = factor + 1 | |||
while not u.is_prime(factor) do | |||
factor = factor + 1 | |||
end | |||
if power ~= 0 then | |||
a[factor] = power | |||
end | |||
end | |||
return a | |||
end | end | ||