模組:Factorization/doc
外观
这是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整數的運算限制內