跳转到内容

模组:Factorization/doc

维基百科,自由的百科全书

这是本页的一个历史版本,由A2569875留言 | 贡献2018年10月31日 (三) 19:31 建立内容为“{{ml|module=Factorization}} 此模組用於處理整數分解。 == 函數說明 == === findDivisor === 輸入一個整數,並回傳其所有…”的新页面)编辑。这可能和当前版本存在着巨大的差异。

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

这是Module:Factorization的文档页面

{{[[Module:{{{1}}}|#invoke:{{{1}}}]]|function}} 此模组用于处理整数分解

函数说明

findDivisor

输入一个整数,并回传其所有因数

参数
  • 1:要找出因数的整数
回传值
  • 以逗号分隔的因数数列
范例
例如找出360的所有因数
{{#invoke:Factorization|findDivisor|1=360}}
结果为:1,2,3,4,5,6,8,9,10,12,15,18,20,24,30,36,40,45,60,72,90,120,180,360
若输入无效数字将返回空字串
{{#invoke:Factorization|findDivisor|1=娜娜奇}}
结果为:

factorization

输入一个整数,并印出质因数分解的结果

参数
  • 1:要质因数分解的整数,其值不能超过35,184,372,088,831。
  • use math:是否以<math></math>格式输出,预设为否
回传值
范例
例如找出360的所有因数
{{#invoke:Factorization|factorization|1=360}}
结果为:23 x 32 x 5
若输入无效数字将返回错误
{{#invoke:Factorization|factorization|1=娜娜奇}}
结果为:错误:不正确的数字
使用<math></math>数学模式
{{#invoke:Factorization|factorization|1=360|use math=yes}}
结果为:

nextPrime

输入一个整数,找到大于该数的最小质数

参数
  • 1:要找下一个质数的整数
回传值
  • 大于该数的最小质数
范例
例如找出367的下一个质数
{{#invoke:Factorization|nextPrime|1=367}}
结果为:373

lastPrime

输入一个整数,找到小于该数的最大质数

参数
  • 1:要找上一个质数的整数
回传值
  • 小于该数的最大质数
范例
例如找出367的上一个质数
{{#invoke:Factorization|lastPrime|1=367}}
结果为:359

primeIndex

输入一个整数n,回传第n个质数

参数
  • 1:质数序数n
回传值
  • 第n个质数
范例
例如找出第367个质数
{{#invoke:Factorization|primeIndex|1=367}}
结果为:2477

primeIndexOf

输入一个整数n,回传小于等于n的质数个数

参数
  • 1:质数序数n
回传值
  • 小于等于n的质数个数
范例
例如印出367是第73个质数
{{#invoke:Factorization|primeIndexOf|1=367}}
结果为:73

create_factorization_string

将质因数分解表格转成格式化字串,不支援#invoke

语法
create_factorization_string(factors, times, pow_h, pow_f)
参数
  • factors:质因数表格,如表示为{[2]=3,[7]=2}
  • times:乘法字元的格式,预设为x
  • pow_h:指数符号开头,预设为<sup>
  • pow_f:指数符号结尾,预设为</sup>

_findDivisorByPrimeFactor

利用质因数分解表格列出所有因数,不支援#invoke

语法

_findDivisorByPrimeFactor(prime_factors)

参数
  • prime_factors:质因数表格,如表示为{[2]=3,[7]=2}
回传值
  • 包含所有因数的一维阵列

_findDivisor

输入一整数,找出所有因数,其使用短除法因数分解,再产生质因数的全排列。不支援#invoke

语法

_findDivisor(num)

参数

num:要找出因数的整数

回传值
  • 包含所有因数的一维阵列

_findDivisor_old

输入一整数,找出所有因数,其使用试除法,从2除到平方根。不支援#invoke

语法

_findDivisor_old(input)

参数

num:要找出因数的整数

回传值
  • 包含所有因数的一维阵列

_factorization

输入一个整数,并印出质因数分解的结果

语法

_factorization(input)

参数
  • input:要质因数分解的整数,其值不能超过35,184,372,088,831。
回传值
  • 质因数分解的结果之质因数表格,如表示为{[2]=3,[7]=2}

_nextPrime

输入一个整数,找到大于该数的最小质数。不支援#invoke

语法

_nextPrime(input)

参数
  • input:要找下一个质数的整数
回传值
  • 大于该数的最小质数

_lastPrime

输入一个整数,找到小于该数的最大质数。不支援#invoke

语法

_lastPrime(input)

参数
  • input:要找上一个质数的整数
回传值
  • 小于该数的最大质数

arr

质数表,为一个一维阵列。不支援#invoke

内容
  • 预设为前1000个质数

lists

质数反查表,key为质数、value为质数之序数。不支援#invoke

内容
  • 预设为前1000个质数

table_max

质数表的预设最大值。不支援#invoke

常数值
  • 预设为7919,即第1000个质数。

max_index

质数表的预设最大足标。不支援#invoke

常数值
  • 预设为1000,表示预设存了1000个质数。

limit

本模组可处理数字的最大上限。不支援#invoke

常数值
  • 预设为35,184,372,088,831,表示预设存了1000个质数。
说明
考量到记忆体限制,根据素数计数函数,107的以下质数有664,579个,其质数表容量已经要以 MB 为单位计算
因此限制质数表最大只能建立到5,931,641(第408,493个质数),对应上方演算法
因此限制订为35,184,372,088,831(5,931,6412
约为 245,位于维基lua整数的运算限制内