Hoppa till innehållet

Modul:Matematik

Från Wikipedia

Dokumentation [visa] [redigera] [historik] [rensa sidcachen]


Modul som samlar funktioner som har med matematik att göra.

Än så länge finns endast funktionerna delare och delare2 som båda listar alla delare till ett tal.

--[[

Olika matamatikfunktioner


Tillgängliga funktioner:
* delare: listar alla delare till ett tal (<10^13).
* delare2: listar alla delare till ett tal (<10200). Mycket snabb.

]]

-- Start av modulen -- 
local p={}


-- delare --
--[[
  delare, skriver ut alla delare till ett givet tal 
  parametrar
  ==========
  tal: talet vars delare söks
  separator (frivillig): den teckensträng som ska skrivas ut mellan delarna.
  Ett komma och ett mellanslag sätts om separatorn ej används 
  exempel
  =======
  {{#invoke:Modulnamn|delare|tal=58166717|separator=,}} 
  ger resultatet
  1,7,673,4711,12347,86429,8309531,58166717
]]
-- Skapad av Larske
function p.delare (frame)
   local args = frame.args
   tal = frame.args['tal'] or frame.args[1]
   tal=string.gsub(tal,'([^0-9])','')
   tal=tonumber(tal)
   tal=math.abs(tal)
   sep = frame.args['separator'] or frame.args[2] or ', '
   delare = {}
   for i = 1, math.sqrt(tal) do
      if tal % i == 0 then 
         table.insert(delare, i)
	 if i ~= math.sqrt(tal) then
	    table.insert(delare, tal/i)
	 end
      end 	
   end
   table.sort(delare)
   return table.concat(delare,sep)
end


-- delare2 --
-- Buggig, använd ej.
-- Denna funktion behålls endast pga tidigare anrop.
function p.delare2 (frame)
	return p.delare(frame)
end


-- Slut på funktioner --
return p