跳转到内容

模組:Factorization/doc

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

这是本页的一个历史版本,由A2569875留言 | 贡献2018年10月31日 (三) 19:31编辑。这可能和当前版本存在着巨大的差异。

这是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整數的運算限制內