(Translated by https://www.hiragana.jp/)
模組:Number - 维基百科,自由的百科全书 とべ转到内容ないよう

ぐみ:Number

本页使用了标题或全文手工转换
被永久保护的模块
维基百科ひゃっか自由じゆうてき百科ひゃっかぜん
文档图示 かたぎ块文档[查看] [编辑] [历史] [きよしじょ缓存]
Module:Number编辑 | 讨论 | 历史 | 链接 | 监视 | にちこころざし

此模ぐみよう數字すうじ相關そうかんほどしきれい特定とくてい數字すうじてき性質せいしつ判別はんべつあるれつ整數せいすうてき部分ぶぶん性質せいしつ

函數かんすう說明せつめい

singleNumberInformation

輸入ゆにゅういち整數せいすうれつ支援しえん計算けいさんてき性質せいしつなみ支援しえん格式かくしき定義ていぎ。較小てき數字すうじ支援しえんじょすう,其方ほうため查表ほう相關そうかん內容定義ていぎ於子ぺーじめん

語法ごほう

{{#invoke:Number|singleNumberInformation
  | 1 =			ようしるし性質せいしつてき數字すうじ
  | use math =		使用しよう<math></math>
  | print list =	ようしるしてき性質せいしつうつしざい這裡代表だいひょう一定いっていかいしるしじょ數字すうじしんてきゆう性質せいしつざいかいしるし)
  | print black list =	しるしてき性質せいしつ
  | 完全かんぜんすう =		完全かんぜんすう性質せいしつてき描述くしかい自動じどうしょうがた{{{}}}てき內容かわなる自動じどう計算けいさん結果けっか,
			請參閱下かた說明せつめいはまうつししょう使用しようあずかしつらえ)
  | (...其他性質せいしつ) =	其他性質せいしつてき描述くし支援しえんてき性質せいしつ請參閱下ひょうはまうつししょう使用しようあずかしつらえ)
  | SemiperfectNumber =	取消とりけしはん完全かんぜんすう/奇異きいすうてき相關そうかん計算けいさん
}}

さんすう

  • 1

此參すうためよう顯示けんじ性質せいしつてき數字すうじ

  • use math

此參すうためよういやよう生成せいせい<math></math>てき標記ひょうき部分ぶぶん數學すうがくしきれい如:

{{#invoke:Number|singleNumberInformation|1=70 | use math = yes }}
結果けっかため
____
{{#invoke:Number|singleNumberInformation|1=70 | use math = no }}
結果けっかため
____
  • <性質せいしつ名稱めいしょう>

此參すうてき名稱めいしょうそくため性質せいしつ名稱めいしょうめん放置ほうち一串性質描述字串,れい

| ごうすう = *{{{number}}}だい{{{order}}}{{{property}}},其存在そんざいせい因數いんすう{{{value}}},うえいち{{{property}}}ため{{{last}}}、したいちため{{{next}}}。
はた顯示けんじため
____
  • 28だい18ごうすう,其存在そんざいせい因數いんすう1、2、4、7、1428,じょういちごうすうため27、したいちため30。
其中:
  • {{{number}}}かえかわ為當ためとうぜん數字すうじほんれいため28。
  • {{{order}}}かえかわ為當ためとうぜん數字すうじ於當ぜん數列すうれつてきだいいくほんれい28ためだい18
  • {{{property}}}かえかわ為當ためとうぜん數列すうれつてき內部連結れんけつほんれいためごうすう」。
  • {{{value}}}かえかわ為當ためとうぜん數列すうれつてき自動じどう計算けいさん性質せいしつ詳細しょうさい性質せいしつ資料しりょう於下おしたかたひょうかく找到。
ほんれいあいすうてき{{{value}}}ためれつ其正因數いんすう
  • {{{last}}}{{{next}}}かえかわ為當ためとうぜん數字すうじ於當ぜん數列すうれつちゅうてきまえいちすう以及いちすう
  • 其他のうようてき性質せいしつさんすうあずか支援しえんてき{{{}}}まいり數列すうれつ於下おしたひょう
特有とくゆう{{{}}}使用しよう方法ほうほう
此類まいり數須かずす放置ほうち於{{{}}}內
まいり#根據こんきょ性質せいしつてきさんすう
通用つうようさんすう
  • {{{ number }}}
    這個數字すうじ
  • {{{ order }}}
    順序じゅんじょそく此數ざい數列すうれつちゅうだいいく
  • {{{ orderstr }}}
    順序じゅんじょくし,描述orderてきあずかしつらえくしただ支援しえんざい查表內的。かたち如「だいX
  • {{{ property }}}
    這個數列すうれつかい自動じどうさんせい內部連結れんけつれい如「ごうすう
  • {{{ releatedstr }}}
    描述どう數列すうれつ鄰近值關聯かんれんてきあずかしつらえくしただ支援しえんざい查表內的。かたち如「ぜんいちべいしたいち娜娜
  • {{{ last }}}
    數列すうれつ中前ちゅうぜん一個有此性質的數,ただ支援しえんざい查表內的。
  • {{{ next }}}
    數列すうれつちゅう一個有此性質的數,ただ支援しえんざい查表內的。
  • {{{ null }}}
    空白くうはくせいただ{{{null}}}まとばなし就會せい空白くうはく
  • {{{ default }}}
    かいかえかわためあずかしつらえくしわかただようざいあずかしつらえくし後方こうほう東西とうざい使用しよう{{{default}}}ようてき文字もじらい實現じつげん
根據こんきょ性質せいしつてきさんすう
名稱めいしょう 條目じょうもく あずかしつらえ {{{}}}さんすう はんれい 數列すうれつこう 支援しえん自動じどう計算けいさん
奇異きいすう 奇異きいすう_(かずろん) *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
836
ぜん20こう
70 ~ 13930
支援しえん
梅森うめもりただしすう 梅森うめもり素数そすう **{{{orderstr}}}{{{property}}}({{{value1}}}),對應たいおうてき[[完全かんぜんすう]]ため{{{value2}}},{{{value3}}}{{{releatedstr}}}。
31
ぜん10こう
3 ~ 618970019642690137449562111
支援しえん
はん完全かんぜんすう はん完全かんぜんすう **{{{orderstr}}}{{{property}}}{{{valuestr}}}{{{releatedstr}}}。
  • {{{ value }}}
    一組和為本身的因數
  • {{{ valuestr }}}
    あずかしつらえてきすう值字くし,描述一組和為本身的因數
24
    • だい5はん完全かんぜんすうかずため本身ほんみてき其中いちくみ因數いんすうため123468ぜんいちため20したいちため28
ぜん100こう
6 ~ 414
速度そくど
はんしつすう はん素数そすう *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
35
ぜん100こう
4 ~ 314
支援しえん
不可ふか及數 不可ふか及数 *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
52
  • だい3不可ふか及數ぜんいちため5したいちため88
ぜん100こう
2 ~ 1116
支援しえん
かいじょう かいじょう *{{{order}}}てき{{{property}}}{{{releatedstr}}}。
24
ぜん10こう
1 ~ 3628800
支援しえん
佩服すう 佩服すう *{{{orderstr}}}{{{property}}},そうげんため本身ほんみてき[[因數いんすう]]ため{{{value}}}{{{releatedstr}}}。
  • {{{ value }}}
    じょりょう這個真因しんいんすうはた結果けっかげんのちため本身ほんみてき因數いんすう
24
  • だい3佩服すうそうげんため本身ほんみてき因數いんすうため6。ぜんいちため20したいちため30
ぜん100こう
12 ~ 1758
支援しえん
平方へいほうすう因數いんすうてきすう 无平かたすう因数いんすうてきすう *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
35
ぜん100こう
1 ~ 163
支援しえん
しつすう 素数そすう *{{{orderstr}}}{{{property}}}。
13
ぜん1000こう
2 ~ 7919
支援しえん
こう斯質すう こう斯整すう#さく为唯いち分解ぶんかいせい **{{{property}}}いち
11
支援しえん
過剩かじょうすう 过剩すう *{{{orderstr}}}{{{property}}},[[真因しんいんすう]]ため{{{value1}}},みつるため{{{value2}}}{{{releatedstr}}}。
  • {{{ value2 }}}
    みつるそく真因しんいんすうあずか數字すうじてき
  • {{{ value1 }}}
    真因しんいんすう
24
ぜん100こう
12 ~ 416
支援しえん
負數ふすう 负数 *{{{property}}}。
-1
支援しえん
整數せいすう 整數せいすう {{{number}}}いち{{{property}}},於{{{last}}}かず{{{next}}}あいだ
-28

-28いち整数せいすう於-29-27これあいだ

支援しえん
平方へいほうすう 平方へいほうすう *{{{orderstr}}}{{{property}}},ため{{{value}}}てき平方へいほう{{{releatedstr}}}。
  • {{{ value }}}
    這個數字すうじてき平方根へいほうこん
25
  • だい5平方へいほうすうため5てき平方へいほうぜんいちため16したいちため36
ぜん50こう
1 ~ 2500
支援しえん
おうなんじ調和ちょうわすう おう尔调すう *{{{orderstr}}}{{{property}}},因數いんすう[[调和平均へいきんすう]]ため{{{value}}}{{{releatedstr}}}。
270
ぜん20こう
1 ~ 117800
支援しえん
ひろしらくあまかつすう ひろしらくあまかつすう *{{{orderstr}}}{{{property}}},ため{{{value1}}}あずか{{{value2}}}てきじょうせき{{{releatedstr}}}。
  • {{{ value2 }}}
    兩個りゃんこ連續れんぞくてき非負ひふ整數せいすうちゅう較大しゃ,其與value1てきじょうせき構成こうせい一個普洛尼克數
  • {{{ value1 }}}
    兩個りゃんこ連續れんぞくてき非負ひふ整數せいすうちゅう較小しゃ,其與value2てきじょうせき構成こうせい一個普洛尼克數
42
ぜん100こう
0 ~ 9900
支援しえん
しつ因數いんすう分解ぶんかい 整数せいすう分解ぶんかい *:{{{property}}}ため{{{value}}}。
  • {{{ value }}}
    しつ因數いんすう分解ぶんかいてき結果けっか
28
支援しえん
ごうすう ごうすう *{{{orderstr}}}{{{property}}},[[因數いんすう|せい因數いんすう]]ゆう{{{value}}}{{{releatedstr}}}。
  • {{{ value }}}
    正數せいすうため所有しょゆうせい因數いんすう負數ふすうため所有しょゆう因數いんすう
  • {{{ value2 }}}
    因數いんすうてき數量すうりょう
28
ぜん100こう
4 ~ 133
支援しえん
完全かんぜんすう 完全かんぜんすう *{{{orderstr}}}{{{property}}},其中,{{{number}}} = {{{value1}}}對應たいおうてき[[梅森うめもり素数そすう]]ため{{{value}}}{{{releatedstr}}}。
496
ぜん7こう
6 ~ 137438691328
支援しえん
本原もとはらはん完全かんぜんすう 本原もとはらはん完全かんぜんすう **よし於{{{number}}}不能ふのう所有しょゆう它小てきはん完全かんぜんすう整除せいじょいん此是{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
28
    • よし於28不能ふのう所有しょゆう它小てきはん完全かんぜんすう整除せいじょいん此是だい3本原もとはらはん完全かんぜんすうぜんいちため20したいちため88
ぜん100こう
6 ~ 7144
支援しえん
しつすうかいじょう しつすうかいじょう *{{{orderstr}}}{{{property}}},そくまえ{{{order}}}しつすうてきじょうせき{{{releatedstr}}}。
30
ぜん10こう
2 ~ 6469693230
支援しえん
孿生しつすう 孪生素数そすう **{{{property}}},ため{{{value}}}。
  • {{{ value }}}
    該對孿生しつすう實際じっさいじょうてき
13
支援しえん
佩爾すう 佩尔すう *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
29
  • だい5佩爾すうぜんいちため12したいちため70
ぜん21こう
0 ~ 15994428
支援しえん
立方りっぽうすう 立方りっぽうすう *{{{orderstr}}}{{{property}}},ため{{{value}}}てき立方りっぽう{{{releatedstr}}}。
  • {{{ value }}}
    這個數字すうじてき立方根りっぽうこん
27
  • だい3立方りっぽうすうため3てき立方りっぽうぜんいちため8したいちため64
ぜん22こう
1 ~ 10648
支援しえん
こう合成ごうせいすう こう合成ごうせいすう *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
24
ぜん41こう
1 ~ 2162160
支援しえん
こう斯整すう分解ぶんかい こう斯整すう#さく为唯いち分解ぶんかいせい *:其[[だいいち象限しょうげん]][[こう斯整すう#さく为唯いち分解ぶんかいせい环|こう斯質すう]]てき[[整数せいすう分解ぶんかい]]ため{{{value}}}。
  • {{{ value }}}
    こう斯整すう分解ぶんかいてき結果けっか
2
支援しえん
斐波ちぎりすう 斐波ちぎり数列すうれつ *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
34
ぜん30こう
0 ~ 832040
支援しえん
哈沙とくすう 哈沙とくすう *{{{orderstr}}}[[じゅう进制]]てき{{{property}}}{{{releatedstr}}}。
27
ぜん100こう
1 ~ 372
支援しえん
奢侈しゃしすう 奢侈しゃしすう *{{{orderstr}}}[[じゅう进制]]てき{{{property}}}{{{releatedstr}}}。
24
ぜん100こう
4 ~ 190
支援しえん
作圖さくず多邊形たへんけい さく图多边形 *{{{value}}}ため{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
24
ぜん100こう
3 ~ 13107
支援しえん
自然しぜんすう 自然しぜんすう {{{number}}}いち{{{property}}},於{{{last}}}かず{{{next}}}あいだ
28

28いち自然しぜんすう於2729これあいだ

支援しえん
節儉せっけんすう 节俭すう *{{{orderstr}}}[[じゅう进制]]てき{{{property}}}{{{releatedstr}}}。
128
ぜん40こう
125 ~ 4802
支援しえん
とうすうすう とうすうすう *{{{orderstr}}}[[じゅう进制]]てき{{{property}}}{{{releatedstr}}}。
27
ぜん100こう
1 ~ 215
支援しえん
ぜん哈沙とくすう 哈沙とくすう **{{{orderstr}}}{{{property}}},そくざい所有しょゆう[[进位せい]]ちゅうみなため[[哈沙とくすう]]{{{releatedstr}}}。
4
ぜん4こう
1 ~ 6
支援しえん
虧數 亏数 *{{{orderstr}}}{{{property}}},[[真因しんいんすう]]ため{{{value1}}},虧度ため{{{value2}}}{{{releatedstr}}}。
  • {{{ value2 }}}
    虧度,そく數字すうじあずか因數いんすうてき
  • {{{ value1 }}}
    真因しんいんすう
27
ぜん100こう
1 ~ 131
支援しえん
自我じがすう 自我じがすう *{{{orderstr}}}[[じゅう进制]]てき{{{property}}}{{{releatedstr}}}。
53
ぜん100こう
1 ~ 973
支援しえん
くさびがたすう くさびがたすう *{{{orderstr}}}{{{property}}}{{{releatedstr}}}。
30
ぜん100こう
30 ~ 762
支援しえん
尋常じんじょうすう 寻常すう *{{{orderstr}}}{{{property}}},だい平方根へいほうこんてきしつ因數いんすうため{{{value}}}{{{releatedstr}}}。
  • {{{ value }}}
    だい平方根へいほうこんてきしつ因數いんすう
28
  • だい18尋常じんじょうすうだい平方根へいほうこんてきしつ因數いんすうため7。ぜんいちため26したいちため29
ぜん100こう
2 ~ 145
支援しえん
みつおっとすう みつおっとすう *{{{orderstr}}}[[じゅう进制]]てき{{{property}}}{{{releatedstr}}}。
27
ぜん100こう
4 ~ 2484
支援しえん
  • SemiperfectNumber

ひらけけいあるせきはん完全かんぜんすう判斷はんだん

支援しえんてき值:yes、no
はん完全かんぜんすう定義ていぎためいたりしょう存在そんざいいちくみ真因しんいんすう,其和ため本身ほんみいん此要けん查一數是否為半完全數,のり需要じゅよう真因しんいんすうてきしゅうけんいちへん
よし於一個集合中子集的數量為いん此當因數いんすう非常ひじょうおおとき,其運算うんざん可能かのうちょう,而MediaWikiきりせいりょうぐみそう時間じかんため10びょう
判斷はんだん為本ためもとぐみちゅうさい慢的演算えんざんほういん設計せっけいひらけかかわ以關閉
  • print list

ようしるしてき性質せいしつれつひょう,以逗ごうぶんへだたれいごうすう,しつ因數いんすう分解ぶんかい,奢侈しゃしすう

あずかしつらえ值為しつすう,孿生しつすう,こう斯質すう,ごうすう,しつ因數いんすう分解ぶんかい,虧數,過剩かじょうすう,完全かんぜんすう,はん完全かんぜんすう,奇異きいすう,おうなんじ調和ちょうわすう,尋常じんじょうすう,はんしつすう,佩服すう,平方へいほうすう因數いんすうてきすう,くさびがたすう,平方へいほうすう,立方りっぽうすう,ひろしらくあまかつすう,自我じがすう,とうすうすう,節儉せっけんすう,奢侈しゃしすう,不可ふか及數,作圖さくず多邊形たへんけい
  • print black list

不要ふようしるしてき性質せいしつれつひょう,以逗ごうぶんへだたれい虧數,しつ因數いんすう分解ぶんかい,作圖さくず多邊形たへんけい

あずかしつらえ值為自然しぜんすう,整數せいすう

例外れいがい狀況じょうきょう

  • いち數字すうじ
輸入ゆにゅうてき內容法被はっぴ解析かいせきため數字すうじ
れい如:{{#invoke:Number|singleNumberInformation | 1 = 娜娜 }}錯誤さくご:「娜娜いち數字すうじ
  • 絕對ぜったいやめちょう支援しえんてき處理しょり範圍はんい
輸入ゆにゅうてき數字すうじ絕對ぜったい值太だい考量こうりょう處理しょり可能かのうちょうあるものかいだかLua整數せいすう支持しじ變成へんせい浮點すう遺失いしつ精確せいかくとう種種しゅじゅ造成ぞうせい錯誤さくごてき問題もんだいいん設定せってい運算うんざん上限じょうげんため35,184,372,088,831。
れい如:{{#invoke:Number|singleNumberInformation | 1 = 9007199254740991 }}
錯誤さくご無法むほう處理しょり數字すうじ「9007199254740991」,其絕對ぜったいやめちょう支援しえんてき處理しょり範圍はんい(35184372088831)。
れい如:{{#invoke:Number|singleNumberInformation | 1 = -∞ }}
錯誤さくご無法むほう處理しょり數字すうじ「-∞」,其絕對ぜったいやめちょう支援しえんてき處理しょり範圍はんい(35184372088831)。
  • 實數じっすう整數せいすうてきじょうがた
輸入ゆにゅうてきすう實數じっすう整數せいすうてきばなし雖然かいしるべ錯誤さくご可能かのう一般數論的可處理範圍內,いん此不かい正常せいじょうてき數字すうじ判斷はんだんほどしきただかい輸出ゆしゅつ固定こていてき性質せいしつくし
____ れい如:{{#invoke:Number|singleNumberInformation | 1 = 0.25 }}
0.25

れい如:{{#invoke:Number|singleNumberInformation | 1 = -5 + 12 i }}

-5 + 12 i

はんれい

{{#invoke:Number|singleNumberInformation | 1 = 28 |use math=yes}}
____ 結果けっかため
  • 輸入ゆにゅう一串僅有加減法的字串也能夠被支援
{{#invoke:Number|singleNumberInformation | 1 = 2+3+5+7+11 |use math=yes}}
____ 結果けっかため
  • 透過とうか輸入ゆにゅう描述くしおさむあらため陳述ちんじゅつ方式ほうしき
_ 原始げんし碼為:
{{#invoke:Number|singleNumberInformation|1=28|use math=yes
  | ごうすう = *{{{number}}}{{{orderstr}}}{{{property}}}。
  | しつ因數いんすう分解ぶんかい = *{{{number}}}={{{value}}}。
  | 完全かんぜんすう = *{{{number}}}{{{property}}}。
  | はん完全かんぜんすう = *{{{number}}}{{{property}}}。
  | おうなんじ調和ちょうわすう = *{{{number}}}{{{property}}}。
  | 尋常じんじょうすう = *{{{number}}}{{{property}}}。
  | 奢侈しゃしすう = *{{{number}}}{{{property}}}。
}}
結果けっかため

numberDivisorInformation

輸入ゆにゅういち整數せいすうれつ支援しえん計算けいさんてき性質せいしつ

さんすう

  • 1ようれつ支援しえん計算けいさんてき性質せいしつてき整數せいすう

かいでん

  • れつ支援しえん計算けいさんてき性質せいしつ
目前もくぜんやめ支援しえん判斷はんだんてき性質せいしつ
以下いか數字すうじためしめせはんようなみ實際じっさい數字すうじ
種類しゅるい 自動じどうさんせいてき じょすう支援しえん ひらけけい/せき閉的さんすう 定義ていぎくしさんすう あずかしつらえ說明せつめいくし
しつすう 自動じどうれつ此數だいいくしつすう さく さく
孿生しつすう 實際じっさいてき孿生しつすうすうたい 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)孿生しつすう=
|(數字すうじ名稱めいしょう)孿生しつすうend=
れい如:|28孿生しつすうend=

定義ていぎ

負數ふすう 支援しえん さく さく
ごうすう れつせい因數いんすう,(さくせき閉的方法ほうほう) 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)因數いんすう=
|(數字すうじ名稱めいしょう)因數いんすうend=
れい如:|28因數いんすうend=
中間ちゅうかん|因數いんすう說明せつめいh=|因數いんすう說明せつめいf=
  • ごうすうせい因數いんすうゆう1、2、4、7、1428。

定義ていぎ

  • (頭部とうぶさんすう)ごうすう(因數いんすう說明せつめいh)1、2、4、7、1428(因數いんすう說明せつめいf)(さんすう)
しつ因數いんすう分解ぶんかい れつしつ因數いんすう分解ぶんかいてき式子のりこ 存在そんざい さく :頭部とうぶ|(數字すうじ名稱めいしょう)しつ因數いんすう分解ぶんかい=
|(數字すうじ名稱めいしょう)しつ因數いんすう分解ぶんかいend=
れい如:|28しつ因數いんすう分解ぶんかいend=
しつ因數いんすう分解ぶんかい

定義ていぎ

(頭部とうぶさんすう)しつ因數いんすう分解ぶんかい(さんすう)
虧數 虧度 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)虧數=
|(數字すうじ名稱めいしょう)虧數end=
れい如:|86虧數end=
  • 虧數,真因しんいんすうため46,虧度ため40

定義ていぎ:(夠靈かつ此處ここらかいさいあらためすすむ)

  • (頭部とうぶさんすう)虧數,真因しんいんすうため46,虧度ため40(さんすう)
過剩かじょうすう みつるたび 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)過剩かじょうすう=
|(數字すうじ名稱めいしょう)過剩かじょうすうend=
れい如:|88過剩かじょうすうend=
  • 過剩かじょうすう真因しんいんすうため92,みつるため4

定義ていぎ:(夠靈かつ此處ここらかいさいあらためすすむ)

  • (頭部とうぶさんすう)過剩かじょうすう真因しんいんすうため92,みつるため4(さんすう)
完全かんぜんすう 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)完全かんぜんすう=
|(數字すうじ名稱めいしょう)完全かんぜんすうend=
れい如:|28完全かんぜんすうend=

定義ていぎ

はん完全かんぜんすう かずため自身じしんてき因數いんすう組合くみあい 支援しえん | Semiperfect Number = :頭部とうぶ|(數字すうじ名稱めいしょう)はん完全かんぜんすう=
|(數字すうじ名稱めいしょう)はん完全かんぜんすうend=
れい如:|88はん完全かんぜんすうend=
  • はん完全かんぜんすうかずため本身ほんみてき其中いちくみ因數いんすうため1、 2、 8、 11、 22、 44。

定義ていぎ

  • (頭部とうぶさんすう)はん完全かんぜんすうかずため本身ほんみてき其中いちくみ因數いんすうため1、 2、 8、 11、 22、 44(さんすう)
奇異きいすう 支援しえん | Semiperfect Number = :頭部とうぶ|(數字すうじ名稱めいしょう)奇異きいすう=
|(數字すうじ名稱めいしょう)奇異きいすうend=
れい如:|70奇異きいすうend=

定義ていぎ

おうなんじ調和ちょうわすう 因數いんすうてき调和平均へいきんすう 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)おうなんじ調和ちょうわすう=
|(數字すうじ名稱めいしょう)おうなんじ調和ちょうわすうend=
れい如:|140おうなんじ調和ちょうわすうend=

定義ていぎ

尋常じんじょうすう だい平方根へいほうこんてきしつ因數いんすう 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)尋常じんじょうすう=
|(數字すうじ名稱めいしょう)尋常じんじょうすうend=
れい如:|28尋常じんじょうすうend=

定義ていぎ

  • (頭部とうぶさんすう)尋常じんじょうすうだい平方根へいほうこんてきしつ因數いんすうため7。(さんすう)
はんしつすう 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)はんしつすう=
|(數字すうじ名稱めいしょう)はんしつすうend=
れい如:|26はんしつすうend=

定義ていぎ

佩服すう 因數いんすうd,じょd外的がいてき因數いんすうしょう加減かげん掉dとう自己じこ本身ほんみ 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)佩服すう=
|(數字すうじ名稱めいしょう)佩服すうend=
れい如:|20佩服すうend=

定義ていぎ

  • (頭部とうぶさんすう)佩服すう,佩服因數いんすうため1(さんすう)
平方へいほうすう因數いんすうてきすう 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)平方へいほうすう因數いんすうてきすう=
|(數字すうじ名稱めいしょう)平方へいほうすう因數いんすうてきすうend=
れい如:|26平方へいほうすう因數いんすうてきすうend=

定義ていぎ

くさびがたすう 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)くさびがたすう=
|(數字すうじ名稱めいしょう)くさびがたすうend=
れい如:|26平方へいほうすう因數いんすうてきすうend=

定義ていぎ

平方へいほうすう これだれてき平方へいほう 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)平方へいほうすう=
|(數字すうじ名稱めいしょう)平方へいほうすうend=
れい如:|25平方へいほうすうend=

定義ていぎ

ひろしらくあまかつすう 兩個りゃんこ連續れんぞく整數せいすう相乘そうじょう 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)ひろしらくあまかつすう=
|(數字すうじ名稱めいしょう)ひろしらくあまかつすうend=
れい如:|30らくあまかつすうend=

定義ていぎ

とうすうすうじゅう进制 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)とうすうすう=
|(數字すうじ名稱めいしょう)とうすうすうend=
れい如:|27とうすうすうend=

定義ていぎ

節儉せっけんすうじゅう进制 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)節儉せっけんすう=
|(數字すうじ名稱めいしょう)節儉せっけんすうend=
れい如:|125節儉せっけんすうend=

定義ていぎ

奢侈しゃしすうじゅう进制 支援しえん さく :頭部とうぶ|(數字すうじ名稱めいしょう)奢侈しゃしすう=
|(數字すうじ名稱めいしょう)奢侈しゃしすうend=
れい如:|28奢侈しゃしすうend=

定義ていぎ

はんれい

れい如70
{{#invoke:Number|numberDivisorInformation|1=70|use math=yes}}
結果けっかため
わか輸入ゆにゅう無效むこう數字すうじはたかえしかい錯誤さくご
{{#invoke:Number|numberDivisorInformation|1=娜娜}}
結果けっかため錯誤さくご無法むほう處理しょり數字すうじ'娜娜'

_checkSemiperfectNumber

けん數字すうじためはん完全かんぜんすう支援しえん#invoke

語法ごほう
_checkSemiperfectNumber(input)
さんすう
  • input整數せいすうようけん查是ためはん完全かんぜんすうてき數字すうじ
かいでん
  • いち陣列じんれつ,其中一個和為自己本身的因數序列

_checkSemiperfectNumberByDivisor

輸入ゆにゅうぼうすうてき所有しょゆうせい因數いんすうけん數字すうじためはん完全かんぜんすう支援しえん#invoke

語法ごほう
_checkSemiperfectNumberByDivisor(input)
さんすう
  • inputぼうすうてき所有しょゆうせい因數いんすう
かいでん
  • いち陣列じんれつ,其中一個和為自己本身的因數序列

checkSemiperfectNumber

輸入ゆにゅういち整數せいすうなみかいでん所有しょゆう因數いんすう

さんすう
  • 1よう找出因數いんすうてき整數せいすう
かいでん
  • 以逗ごうぶんへだた且和ため自己じこ本身ほんみてき因數いんすう序列じょれつ
はんれい
れい如360
{{#invoke:Number|checkSemiperfectNumber|1=360}}
結果けっかため:1,2,3,4,5,6,8,9,10,12,15,18,20,24,30,36,40,45,72
れい如找輸入ゆにゅうわかため奇異きいすうのりかえしかいそら
{{#invoke:Number|checkSemiperfectNumber|1=70}}
結果けっかため
れい如找輸入ゆにゅうわかため虧數またしか
{{#invoke:Number|checkSemiperfectNumber|1=27}}
結果けっかため
わか輸入ゆにゅう無效むこう數字すうじはたかえしかいそらくし
{{#invoke:Number|checkSemiperfectNumber|1=娜娜}}
結果けっかため

local getArgs = require('Module:Arguments').getArgs
local p = { PrimeTable = {} }
local numdata = nil
--[[
輸入ゆにゅういち數字すうじn,けん查nためはん完全かんぜんすう如是にょぜれつさいさきさがせいたてきため自身じしん因數いんすう數列すうれついやのり輸出ゆしゅつそら陣列じんれつ (一般いっぱんLua函數かんすう)

注意ちゅうい : 此為指數しすう時間じかん複雜ふくざつ問題もんだい
	--さい情況じょうきょう時間じかん複雜ふくざつため O(2^因數いんすう個數こすう)
	--よびさけべ謹慎きんしん
]]
function p._checkSemiperfectNumber(input)
	local number = tonumber(input) or 0
	if p.PrimeTable.table_max == nil then p.PrimeTable = require('Module:Factorization') end
	local divs_all = p.PrimeTable._findDivisor(number)
	return p._checkSemiperfectNumberByDivisor(divs_all)
end

--[[
輸入ゆにゅういん數列すうれつひょうけん數字すうじためはん完全かんぜんすう如是にょぜれつさいさきさがせいたてきため自身じしん因數いんすう數列すうれついやのり輸出ゆしゅつそら陣列じんれつ (一般いっぱんLua函數かんすう)

注意ちゅうい : 此為指數しすう時間じかん複雜ふくざつ問題もんだい
	--さい情況じょうきょう時間じかん複雜ふくざつため O(2^因數いんすう個數こすう)
	--よびさけべ謹慎きんしん
]]
function p._checkSemiperfectNumberByDivisor(input)
	if xpcall(function()_=#input pairs(input) end,function(_)end) == true then
		local flattern = function(a_table)
			local flattern_result = {}
			if xpcall(function()_=#a_table pairs(a_table) end,function(_)end) == true then
				for key,value in pairs(a_table) do
					if value == 1 then flattern_result[#flattern_result + 1] = key end
				end
				table.sort(flattern_result)
			end
			return flattern_result
		end
		local number = input[#input]
		local divs_all = input
		local divs = {}
		local result = {}
		local divs_subset = require("Module:Combination").getCombinationGenerator()
		local sum = 0
		for i = 1, #divs_all do if divs_all[i] ~= number then 
			divs[divs_all[i]] = 1 
			sum = sum + divs_all[i]
			result[divs_all[i]] = 1
		end end
		if sum < number then return {} end
		if sum == number then return flattern(result) end
		divs_subset:init(divs, 0)
	
		local calc_semi = sum - number
		local add_buffer = 0
		
		for i = 1, (#divs_all)-1 do
			divs_subset.count = i
			divs_subset:set({nil})
			divs_subset:fill()
			local middle_flag = true;
			while middle_flag == true do
				local inside_flag = true;
				while inside_flag == true do
					add_buffer=0
					for j=1,#(divs_subset.list) do
						add_buffer = add_buffer + divs_subset.list[j]
					end
					if calc_semi - add_buffer == 0 then
						for j=1,#(divs_subset.list) do
							result[divs_subset.list[j]] = nil
						end
						return flattern(result)
					end
					inside_flag = divs_subset:next()
				end
				
				local backtrack_flag = true;
				while backtrack_flag == true do
					local delete_num = divs_subset.list[#(divs_subset.list)]
					divs_subset.number_count[delete_num] = divs_subset.number_count[delete_num] - 1
					divs_subset.list[#(divs_subset.list)] = nil
					if #(divs_subset.list) <= 0 then break end
					middle_flag = divs_subset:next()
					divs_subset:fill()
					backtrack_flag = (#(divs_subset.list) < divs_subset.count) or #(divs_subset.list) <= 0
				end
				if #(divs_subset.list) <= 0 then break end
			end
		end
	end
	return {}
end

--[[
けん查一個數字是否為半完全數,如是にょぜれつさいさきさがせいたてきため自身じしん因數いんすう數列すうれついやのり輸出ゆしゅつ (支援しえん#invoke:)

注意ちゅうい : 此為指數しすう時間じかん複雜ふくざつ問題もんだい
	--さい情況じょうきょう時間じかん複雜ふくざつため O(2^因數いんすう個數こすう)
	--よびさけべ謹慎きんしん
]]
function p.checkSemiperfectNumber(frame)
    local args
    if frame == mw.getCurrentFrame() then
        -- We're being called via #invoke. The args are passed through to the module
        -- from the template page, so use the args that were passed into the template.
        args = getArgs(frame) --frame.args
    else
        -- We're being called from another module or from the debug console, so assume
        -- the args are passed in directly.
        args = frame
    end
	return tostring(table.concat(p._checkSemiperfectNumber(args[1] or args['1']),','))
end

--[[
れつ一個或多個整數與因數相關的性質 (支援しえん#invoke:)
運算うんざん速度そくど較快,適合てきごう進行しんこう大量たいりょう輸出ゆしゅつ,如1000以下いかてき數字すうじ
]]
function p.numberDivisorInformation(frame)
	-- For calling from #invoke.
    local args
    local can_math = false
    local yesno = require('Module:Yesno')
    if frame == mw.getCurrentFrame() then
        -- We're being called via #invoke. The args are passed through to the module
        -- from the template page, so use the args that were passed into the template.
        args = getArgs(frame, {parentFirst=true}) --frame.args
        can_math = yesno(args['use math'] or args['use_math'])
        SemiperfectNumber = yesno(args['SemiperfectNumber'] or args['semiperfectNumber'] or 
        	args['Semiperfect Number'] or args['semiperfect Number'] or args['Semiperfect_Number'] or args['semiperfect_Number'] or 'yes')
    else
        -- We're being called from another module or from the debug console, so assume
        -- the args are passed in directly.
        args = frame
    end
    local body = ''
    local print_information = function(result_str, number, page, name, display, linkQ, bullet, describe, head_describe)
    	local head_text = args[tostring(number) .. (name or '數字すうじ')] or args[tostring(number) .. (page or '數字すうじ')] or 
    						args[tostring(number) .. (display or '數字すうじ')]

    	local tail_text = args[tostring(number) .. (page or '數字すうじ') .. "end"] or args[tostring(number) .. (page or '數字すうじ') .. "f"] or 
    					args[tostring(number) .. (name or '數字すうじ') .. "end"] or args[tostring(number) .. (name or '數字すうじ') .. "f"] or
    					args[tostring(number) .. (display or '數字すうじ') .. "end"] or args[tostring(number) .. (display or '數字すうじ') .. "f"]

    	result_str = result_str .. bullet .. (head_text or '')
    	result_str = result_str .. (head_describe or '')
    	if linkQ == true then
    		result_str = result_str .. "[[" .. page
    		if (display ~= nil) and (display ~= '') then result_str = result_str .. '|' .. display end
    		result_str = result_str .. "]]"
    	else
    		if (display ~= nil) and (display ~= '') then 
    			result_str = result_str .. display 
    		else
    			result_str = result_str .. name 
    		end
    	end
		if (describe ~= nil) and (describe ~= '') then
			result_str = result_str .. ',' .. describe
		end
		if tail_text ~= nil then result_str = result_str .. ',' .. tail_text end
		result_str = result_str .. '。\n'
		return result_str
    end
    --あずかしつらえためただ處理しょりさんすう1てき數字すうじ
	local num_start = args[1] or args['1']
    local num_end = args[1] or args['1']
    --讀取よみと範圍はんい
    if args['start'] then num_start = args['start'] end
    if args['end'] then num_end = args['end'] end
    local sort_invert = yesno(args['sort invert'] or args['sort_invert'] or false)
    --範圍はんい內只ゆう1個いっこ數字すうじ
    local one_number = false
    if num_start == num_end then one_number = true end
    --建立こんりゅうしろめいたん
    local white_list = {}
    local white_index = {}
    local white_list_enable = false
    if args['white_list'] or args['white list'] then 
    	white_list = mw.text.split((args['white_list'] or args['white list']),',') 
    	white_list_enable = true
    end
	--建立こんりゅうしろめいたん查表
	for first,second in pairs(white_list) do
		if tonumber(second) then
			white_index[tonumber(second)] = 1
		end
	end
	--輸入ゆにゅうためあずかしつらえしたがえれい開始かいし
    num_start = tonumber(num_start or 0)
    num_end = tonumber(num_end or 0)
	if mw.ustring.lower(tostring(num_start)) == 'nan' or mw.ustring.lower(tostring(num_end)) == 'nan' then 
		return require("Module:Error").error({[1]="錯誤さくご\'" .. (args[1] or args['1'] or args['start'] or args['end']) .. '\' '
			.. 'いちすう-{}-。'
		})
	end
    --ちょう處理しょり範圍はんい
    if p.PrimeTable.table_max == nil then p.PrimeTable = require('Module:Factorization') end
	if (num_start or 0) > p.PrimeTable.limit or (num_end or 0) > p.PrimeTable.limit
		or (num_start == nil) or (num_end == nil) 
		then 
			return require("Module:Error").error({[1]="錯誤さくご無法むほう處理しょりすう-{}-\'" .. (args[1] or args['1'] or args['start'] or args['end']) .. '\''})
	end
    
    if (num_end or 0) < (num_start or 0) then
    	return require("Module:Error").error({[1]="錯誤さくご範圍はんい不正ふせいかく"})
    end
    --輸入ゆにゅうふと多數たすう
    if (num_end or 0) - (num_start or 0) > 1510 then
    	if(#white_list > 1510) then
    		--無論むろん計算けいさん時間じかんあるものばん展開てんかい大小だいしょうゆうちょうだしてきふうけわし
    		return require("Module:Error").error({[1]="錯誤さくご數字すうじふと"})
    	end
    end
    local high_time_complexity = false
    local print_number_count = num_end - num_start + 1
    if white_list_enable then print_number_count = math.min( print_number_count, #white_list ) end
    
    --開始かいしれつしるし數字すうじあずか因數いんすう分解ぶんかい相關そうかんてき性質せいしつ
    local number = tonumber(args[1] or args['1'] or 0)
    local number_step=1
    if sort_invert==true then
    	local swap_temp = num_start
    	number_step = -1
    	num_start = num_end
    	num_end = swap_temp
    end
	for number = num_start , num_end , number_step do
		--數字すうじ於白めいたん
		if(not white_list_enable or white_index[number] == 1) then
			if one_number == false then
				--如果數字すうじ很多建立こんりゅう章節しょうせつ (もちい[[#數字すうじ]]とべいたてき章節しょうせつ)
				body = body .. ';' .. tostring(number) .. '<span id=\"' .. tostring(number) .. '\">\n'
			end
			 if args[tostring(number)..'_head'] or args[tostring(number)..' head'] then 
			 	--れつしるし於章ぶし頭部とうぶてき訊,如主條目じょうもく
			 	local str = string.gsub((args[tostring(number)..'_head'] or args[tostring(number)..' head']) , "\n", "\n:")
			 	body = body .. str .. '\n'
			 end
			 
			if math.abs(math.floor(number) - number) > 0 then
				body = body .. p._simpleRealText(number, can_math, frame) .. '\n'
			else
				if p.PrimeTable.table_max == nil then p.PrimeTable = require('Module:Factorization') end
				--因數いんすう分解ぶんかい
				local primedata = p.PrimeTable._factorization(number)
				local divdata = p.PrimeTable._findDivisorByPrimeFactor(primedata)
	
				--因數いんすう分解ぶんかい發生はっせい錯誤さくご停止ていし執行しっこうなみかえしかい錯誤さくご
				if primedata.has_err ~= nil or divdata.has_err ~= nil then
					local Error = require("Module:Error")
					if primedata.has_err ~= nil then return body .. '\n' .. Error.error({[1]="錯誤さくご:" .. primedata.has_err})
					else return body .. '\n' .. Error.error({[1]="錯誤さくご:" .. divdata.has_err}) end
				end
				
				local is_prime = true --表示ひょうじ數字すうじためしつすう
				local num_sqrt = math.sqrt(number) --表示ひょうじ數字すうじてき平方根へいほうこん
				local admirable_div = nil --表示ひょうじ佩服すうてきしょうげん因數いんすう
				local is_unusual = nil --表示ひょうじ數字すうじいやゆうだい平方根へいほうこんてきしつ因數いんすう
				local div_sum = 0 --因數いんすう
				local prime_count = 0 --あい異質いしつ因數いんすう個數こすう
				local div_sum_harmonic = 0 --因數いんすう調和ちょうわ總和そうわ
				local div_harmonic_avg = 0.001 --因數いんすう調和ちょうわ平均へいきんすう
				local div_count = 0 --因數いんすう數量すうりょう
				local exp_num = 0 --しつ因數いんすうそう指數しすう (Ωおめが)
				local prime_digits = 0
				local buffer_text = ''
				
				--掃描しつ因數いんすう
				for first,second in pairs(primedata) do
					if first ~= 'has_err' then 
						if first ~= 1 and first ~= number then 
							is_prime = false
							--判斷はんだんため尋常じんじょうすう (いやゆうだい平方根へいほうこんてきしつ因數いんすう)
							if first > num_sqrt then is_unusual = first end
						end
						if first ~= 1 then
							--計算けいさんしつ因數いんすうそう指數しすう (Ωおめが)
							exp_num = exp_num + second
							--計算けいさんしょう異質いしつ因數いんすう數量すうりょう
							prime_count = prime_count + 1
							prime_digits = prime_digits + 
								mw.ustring.len( mw.ustring.format( "%d",math.floor(math.abs(first)) ) )
							if second > 1 then prime_digits = prime_digits + 
								mw.ustring.len( mw.ustring.format( "%d",math.floor(math.abs(second)) ) ) end
						end
					end
				end
		
				--計算けいさん因數いんすう
				for first,second in pairs(divdata) do
					if first ~= 'has_err' then 
						if second ~= number then div_sum = div_sum + second end
						div_sum_harmonic = div_sum_harmonic + (1.0 / second)
						div_count = div_count + 1
					end
				end
				--計算けいさん因數いんすうてき調和ちょうわ平均へいきんすう
				div_harmonic_avg = (div_count + 0.000000) / div_sum_harmonic
				for first,second in pairs(divdata) do
					if first ~= 'has_err' then 
						--判斷はんだん數字すうじため佩服すう
						if div_sum - second * 2 == number then admirable_div = second end
					end
				end
		
				--さんせい<math>格式かくしき,以印しつ因數いんすう分解ぶんかい於條
				local times = " x "
				local pow_h = "<sup>"
				local pow_f = "</sup>"
				if can_math then
					times = "\\times "
					pow_h = "^{"
					pow_f = "} "
				end
				--しるししつ因數いんすう分解ぶんかい於條
				local factors_str = p.PrimeTable.create_factorization_string(primedata, times, pow_h, pow_f)
				if can_math then factors_str = frame:callParserFunction{name = "#tag:math", args = {factors_str}} end
				--開始かいしれつしるし整數せいすう性質せいしつ
				if is_prime == true then
					--しつ因數いんすう分解ぶんかいただゆういち元素げんそてき情況じょうきょう
					if number == 0 then
						body = body .. '*[[0|中性ちゅうせいすう]]。\n' 
					elseif number == 1 then
						body = body .. '*[[单位數字すうじ|單位たんいすう]]。\n'
					elseif number == -1 then
						body = body .. '*[[負數ふすう]][[单位數字すうじ|單位たんい]]。\n' 
					else
						--これしつすう
						body = body .. '*'
						if p.PrimeTable.lists[number] ~= nil then
							body = body .. 'だい' .. tostring(p.PrimeTable.lists[number]) .. ''
						end
						body = body .. '[[しつすう]]。\n' 
						
						if p.PrimeTable.table_max == nil then p.PrimeTable = require('Module:Factorization') end
						--查質すうひょう,找前いちいちしつすう
						local next_p = p.PrimeTable._nextPrime(number)
						local last_p = p.PrimeTable._lastPrime(number)
						if number > 7919 then high_time_complexity = true end
						if tonumber(next_p) ~= nil or tonumber(last_p) ~= nil then
							--判斷はんだんため孿生しつすう
							if (next_p or number) - number == 2 or number - (last_p or number) == 2 then
								body = body .. '**' .. (args[tostring(number) .. "孿生しつすう"] or '')
								body = body .. "[[孪生素数そすう]]," 
								local is_printted = false
								if tonumber(next_p) ~= nil then
									if (next_p or number) - number == 2 then
										is_printted = true
										body = body .. 'ため(' .. number ..'、 [[' .. next_p ..']])'
									end
	
									if number - (last_p or number) == 2 then
										if is_printted == true then body = body .. '以及' 
										else body = body .. 'ため' end
										body = body .. '([[' .. last_p ..']]、 ' .. number ..')'
									end
									
									body = body .. '\n'
								end
							end
						end
					end
				else 
					--れつしるし所有しょゆう因數いんすうかずただし因數いんすう
					local div_string = ''
	
					body = print_information(body, number, number < 0 and "负数" or "ごうすう", number < 0 and "負數ふすう" or "ごうすう", nil, true, '*', (args["因數いんすう說明せつめいh"] or ("[[因數いんすう|"..(number < 0 and "" or "ただし").."因數いんすう]]ゆう")) .. 
						table.concat( divdata, '、', 1, #divdata - 1 ) ..'' .. tostring(divdata[#divdata]) .. (args["因數いんすう說明せつめいf"] or '') )
					body = print_information(body, number, "整数せいすう分解ぶんかい", "整數せいすう分解ぶんかい", "しつ因數いんすう分解ぶんかい", true, "*:", factors_str)
					if number > 2 then
						--れつしるし純粹じゅんすい因數いんすう相關そうかん性質せいしつ (虧數/完全かんぜんすう/過剩かじょうすう)
						if div_sum ~= number then
							local tail_str=''
							if div_sum < number then
								body = body .. '*' .. (args[tostring(number) .. "虧數"] or '')
								body = body .. '[[亏数]]'
								tail_str = ",虧度ため" .. tostring(number-div_sum)
								if args[tostring(number) .. "虧數f"] ~= nil then tail_str = tail_str .. ',' .. args[tostring(number) .. "虧數f"] end
							else
								body = body .. '*' .. (args[tostring(number) .. "過剩かじょうすう"] or '')
								body = body .. '[[过剩すう]]'
								tail_str = ",みつるため" .. tostring(div_sum-number)
								if args[tostring(number) .. "過剩かじょうすうf"] ~= nil then tail_str = tail_str .. ',' .. args[tostring(number) .. "過剩かじょうすうf"] end
							end
							body = body .. ',[[真因しんいんすう]]ため' .. tostring(div_sum) .. tail_str .. '\n'
						else
							body = print_information(body, number, "完全かんぜんすう", "完全かんぜんすう", nil, true, '*')
						end
						if SemiperfectNumber and print_number_count <= 1010 and div_sum >= number then --過剩かじょうすうさい需探討是いやはん完全かんぜんある奇異きい
							--さい情況じょうきょう時間じかん複雜ふくざつため O(2^因數いんすう個數こすう)
							--いん根據こんきょよう做的數字すうじ數量すうりょう決定けってい放棄ほうき計算けいさん
							if (#divdata <= 12 or (print_number_count <= 505 and #divdata <= 14) 
								or (print_number_count <= 200 and #divdata <= 16) or (print_number_count <= 10 and #divdata <= 20)
								 or (print_number_count <= 2 and #divdata <= 25) or (print_number_count <= 1 and #divdata <= 32) ) then
								--此為指數しすう時間じかん複雜ふくざつ演算えんざんほういん此當數字すうじりょうだい於505そく放棄ほうき計算けいさん
								local simi_div = p._checkSemiperfectNumberByDivisor(divdata)
								if #simi_div > 0 then
									buffer_text = ''
									if div_sum ~= number then 
										buffer_text = "かずため本身ほんみてき其中いちくみ因數いんすうため[[" .. tostring( table.concat(simi_div, "]]、 [[") ) .. "]]"
									end
									body = print_information(body, number, "はん完全かんぜんすう", "はん完全かんぜんすう", nil, true, "**", buffer_text )
								else
									body = print_information(body, number, "奇異きいすう_(かずろん)", "异数", "奇異きいすう", true, "**")
								end
								if #divdata > 16 then high_time_complexity = true end
							end
						end
						--れつしるしあずか因數いんすう平均へいきんすう相關そうかん性質せいしつ
						if math.abs(div_harmonic_avg - math.floor(div_harmonic_avg)) <= 1e-6 then
							body = print_information(body, number, "おうなんじ調和ちょうわすう", "おう尔调すう", nil, true, '*', 
								"因數いんすう[[调和平均へいきんすう]]ため" .. string.format("%d",math.floor(div_harmonic_avg)))
						end
						--れつしるしあずかしつ因數いんすう相關そうかん性質せいしつ
						if is_unusual ~= nil then 
							body = print_information(body, number, "尋常じんじょうすう", "寻常すう", nil, true, '*', 
								"だい平方根へいほうこんてきしつ因數いんすうため" .. tostring(is_unusual) )
						end
						if exp_num == 2  then 
							body = print_information(body, number, "はん素数そすう", "はんしつすう", nil, true, '*' )
						end
						if admirable_div ~= nil then 
							body = print_information(body, number, "佩服すう", "佩服すう", nil, true, '*', 
								"佩服[[因數いんすう]]ため" .. tostring(admirable_div) )
						end
						--れつしるし平方へいほうすう因數いんすうてきすう相關そうかん性質せいしつ
						if exp_num == prime_count then 
							body = print_information(body, number, 
									"无平かたすう因数いんすうてきすう", "平方へいほうすう因數いんすうてきすう", nil, true, '*' )
							if prime_count == 3 then 
								body = print_information(body, number, "くさびがたすう", "くさびがたすう", nil, true, "**" )
							end
						end
					end
					--れつしるし自然しぜんすう相關そうかん性質せいしつ
					if number > -1 then
						if math.abs(num_sqrt - math.floor(num_sqrt)) <= 1e-6 then
							body = print_information(body, number, "平方へいほうすう", "平方へいほうすう", nil, true, '*', 
								"ため" .. string.format("%d", math.floor(num_sqrt)) .. "てき平方へいほう" )
						end
					end
				end
				if number > -1 and number ~=1 then
					if math.abs(math.ceil(num_sqrt) - math.floor(num_sqrt)) > 1e-6 and math.abs(math.ceil(num_sqrt) * math.floor(num_sqrt) - number) <= 1e-6 then
						body = print_information(body, number, "ひろしらくあまかつすう", "ひろしらくあまかつすう", nil, true, '*', 
							"ため" .. mw.ustring.format( "%d", math.floor(num_sqrt) ) .."あずか"
								.. mw.ustring.format( "%d", math.ceil(num_sqrt) ) .."てきじょうせき" )
					end
					if is_prime ~= true then
						local num_digts = mw.ustring.len( mw.ustring.format( "%d",math.floor(math.abs(number)) ) ) 
						if prime_digits == num_digts then
							body = print_information(body, number, "とうすうすう", "とうすうすう", nil, true, '*', nil, "[[じゅう进制]]てき")
						elseif prime_digits < num_digts then
							body = print_information(body, number, "節儉せっけんすう", "节俭すう", nil, true, '*', nil, "[[じゅう进制]]てき")
						elseif prime_digits > num_digts then
							body = print_information(body, number, "奢侈しゃしすう", "奢侈しゃしすう", nil, true, '*', nil, "[[じゅう进制]]てき")
						end
					end
				end
			end
			--れつしるし其他性質せいしつ
			if args[number] or args[tostring(number)] then 
				local str = (args[number] or args[tostring(number)])
				body = body .. str .. '\n'
			end
		end
	end 
	if high_time_complexity == true then body = body .. '[[Category:使用しようだか時間じかん複雜ふくざつ演算えんざん法的ほうてき條目じょうもく]]' end
	return mw.text.trim(body)
end

--よう於少りょう數字すうじ(じゅういく) 性質せいしつ輸出ゆしゅつ (支援しえんきゃくせい)
function p.manyNumberInformation(frame)
	numdata = require("Module:Number/data")
	local can_math = false
	local args
	if frame == mw.getCurrentFrame() then
        -- We're being called via #invoke. The args are passed through to the module
        -- from the template page, so use the args that were passed into the template.
        local yesno = require('Module:Yesno')
        args = getArgs(frame, {readOnly = false, parentFirst=true}) --frame.args
        can_math = yesno(args['use math'] or args['use_math'])
    else
        -- We're being called from another module or from the debug console, so assume
        -- the args are passed in directly.
        args = frame
    end
    if _flag_mass_output == nil then _flag_mass_output = true end
    local count = tonumber(args['count']) or 1
    local number = args[1] or args['1']
    local body = ''
    if number == nil then return '' end
    for i = number,number+count+1 do
			if count > 1 then
				--如果數字すうじ很多建立こんりゅう章節しょうせつ (もちい[[#數字すうじ]]とべいたてき章節しょうせつ)
				body = body .. ';' .. tostring(i) .. '<span id=\"' .. tostring(i) .. '\">\n'
			end
			 if args[tostring(i)..'_head'] or args[tostring(i)..' head'] then 
			 	--れつしるし於章ぶし頭部とうぶてき訊,如主條目じょうもく
			 	local str = string.gsub((args[tostring(i)..'_head'] or args[tostring(i)..' head']) , "\n", "\n:")
			 	body = body .. str .. '\n'
			 end
			if(can_math)then if args[1] then args[1] = i frame.args[1] = i end if args['1'] then args['1'] = i frame.args['1'] = i end
				body = body .. p.singleNumberInformation(frame) .. '\n'
			else if args[1] then args[1] = i end if args['1'] then args['1'] = i end
				body = body .. p.singleNumberInformation(args) .. '\n'
			end
			 --れつしるし其他性質せいしつ
			if args[i] or args[tostring(i)] then 
				local str = (args[i] or args[tostring(i)])
				body = body .. str .. '\n'
			end
	end
	body = mw.text.trim(body)
	if _flag_use_user_define_string == true then body = body .. "[[Category:使用しよう定義ていぎModule:Number語句ごくてきぺーじめん]]" end
	return body
end

function p._checkAddSubtract(num_str)
	local body = ''
	local real, imag = 0, 0
	local split_str = mw.text.split(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(
			num_str or '',
		'%s+',''),'%++([%d%.])',',+%1'),'%++([ij])',',+1%1'),'%-+([%d%.])',',-%1'),'%-+([ij])',',-1%1'),'%*+([%d%.])',',*%1'),'%*+([ij])',',*1%1'),'%/+([%d%.])',',/%1'),'%/+([ij])',',/1%1'),',')
	local first = true
	local continue = false
	
	for k,v in pairs(split_str) do
		continue = false
		local val = mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.ustring.gsub(mw.text.trim(v),'[ij]+','i'),'^(%.)','0%1'),'^([%d%.])','+%1'),'([%+%-])([%d%.])','%1\48%2'),'^([ij])','+1%1')
		if mw.ustring.find(val,"%/") or mw.ustring.find(val,"%*") then return end
		if val == nil or val == '' then if first == true then first = false continue = true else return end end
		if not continue then
			local num_text = mw.ustring.match(val,"[%+%-][%d%.]+i?")
			if num_text ~= val then return end
			local num_part = tonumber(mw.ustring.match(num_text,"[%+%-][%d%.]+"))
			if num_part == nil then return end
			if mw.ustring.find(num_text,"i") then
				imag = imag + num_part
			else
				real = real + num_part
			end
		end
	end
	return real, imag
end

function p._checkInf(num_str)
	local inf_siring = {'inf','infinitas','infinitas','infinity','無限むげん','无限','无限だい','無限むげんだい','無窮むきゅう','无穷','无穷だい','無窮むきゅうだい','∞','-∞','+∞',
		'せい無限むげん','せい无限','せい无限だい','せい無限むげんだい','せい無窮むきゅう','せい无穷','せい无穷だい','せい無窮むきゅうだい',
		'無限むげん','无限','无限だい','無限むげんだい','無窮むきゅう','无穷','无穷だい','無窮むきゅうだい'
	}
	for k,v in pairs(inf_siring) do
		if num_str == v then
			return tonumber("inf")
		end
	end
end

function p._simpleRealText(number, can_math, frame)
	local body = ''
	body = '*' .. tostring(number) .. 'いち[[实数]]。\n'
	if number < 0 then
		body = body .. '*' .. '[[负数]]。\n'
	else
		body = body .. '*' .. '[[正數せいすう]]。\n'
	end
	if math.abs(math.floor(1 / number) - 1 / number)  <= 1e-15 then -- 要求ようきゅうちょうこう精度せいど
		body = body .. '*' .. tostring(1 / number) .. 'てき[[たおせすう]]。\n'
	end
	if math.abs(math.floor(number * number) - number * number) <= 1e-15 then -- 要求ようきゅうちょうこう精度せいど
		body = body .. '*' .. tostring(number * number) .. 'てき[[平方根へいほうこん]]。\n'
	end
	if math.abs(number - math.pi) <= 1e-15 then -- 要求ようきゅうちょうこう精度せいど
		body = body .. '*[[圓周えんしゅうりつ]]。\n'
	end
	return body
end

function p._simpleComplexText(real, imag, can_math, frame)
	local body = ''
	
	if cmath==nil then cmath = require("Module:Complex Number").cmath.init() end
	local the_number = cmath.getComplexNumber(real, imag)
	local length = cmath.abs(the_number)
	local argument = cmath.arg(the_number)
	local complex_str, gfactors_str = tostring(the_number), ""
	local sq_len = math.sqrt(length)
	local sq_real, sq_imag = sq_len * math.cos(argument/2.0), sq_len * math.sin(argument/2.0)
	local sq_num, sq_str = cmath.getComplexNumber(sq_real, sq_imag), ""

	if can_math then complex_str = frame:callParserFunction{name = "#tag:math", args = {complex_str}} end
		
	body = '*' .. complex_str .. 'いち[[复数_(数学すうがく)|複數ふくすう]]。\n'
	if numdata._is_integer(real) and numdata._is_integer(imag) then
		body = body ..'*' .. '[[こう斯整すう]]。\n'
		local is_gprime = cmath.is_prime_quadrant1(the_number) or cmath.is_prime_quadrant1(-the_number) or
			cmath.is_prime_quadrant1(cmath.getComplexNumber(0, 1) * the_number) or
			cmath.is_prime_quadrant1(cmath.getComplexNumber(0, -1) * the_number)
		if is_gprime ~= nil then
			if not is_gprime then
				local gprimedata, gfactors = p.PrimeTable._gaussianFactorization(tostring(the_number)), {}
				--さんせい<math>格式かくしき,以印しつ因數いんすう分解ぶんかい於條
				local times = " x "
				local pow_h = "<sup>"
				local pow_f = "</sup>"
				local left_ = "("
				local right_ = ")"
				if can_math then
					times = "\\times "
					pow_h = "^{"
					pow_f = "} "
					left_ = "\\left( "
					right_ = "\\right) "
				end
				for first,second in pairs(gprimedata) do
					if first ~= 'has_err' then 
						local complex_num = cmath.toComplexNumber(first) 
						if complex_num.real ~= 0 and complex_num.imag ~= 0 then
							gfactors[left_ .. tostring(first) .. right_] = second
						else
							gfactors[first] = second
						end
					end
				end
				--しるししつ因數いんすう分解ぶんかい於條
				gfactors_str = p.PrimeTable.create_factorization_string(gfactors, times, pow_h, pow_f)
				if mw.text.trim(gfactors_str) == '' then is_gprime = true end
				if can_math then 
					gfactors_str = frame:callParserFunction{name = "#tag:math", args = {gfactors_str}} 
				end
			end
		end
		if is_gprime then body = body ..'*' .. '[[こう斯整すう#さく为唯いち分解ぶんかいせい环|こう斯質すう]]。\n'
		elseif length > 1 then body = body ..'*' .. '[[こう斯整すう#さく为唯いち分解ぶんかいせい环|こう斯]][[ごうすう]]。\n'
			body = body ..'*:' .. '[[こう斯整すう#さく为唯いち分解ぶんかいせい环|こう斯]][[整数せいすう分解ぶんかい]]ため,' .. gfactors_str ..'。\n'
		end
	end
	if numdata._is_integer(sq_real) and numdata._is_integer(sq_imag) then
		sq_str = tostring(sq_num)
		if can_math then sq_str = frame:callParserFunction{name = "#tag:math", args = {sq_str}} end
		body = body ..'*' .. '[[平方へいほうすう]],ため' .. tostring(sq_str) .. 'てき平方へいほう\n'
	end

	if numdata._is_integer(length) then
		body = body ..'*' .. '[[絕對ぜったい值]]ため' .. tostring(length) .. '。\n'
	else
		body = body ..'*' .. '[[絕對ぜったい值]]やくため' .. string.format("%.4f",length) .. '。\n'
	end

	local deg = math.deg(argument)
	if numdata._is_integer(deg) then
		body = body ..'*' .. '[[辐角]]ため' .. tostring(deg) .. '[[ (かく)|]]。\n'
	else
		body = body ..'*' .. '[[辐角]]やくため' .. string.format("%.4f",deg) .. '[[ (かく)|]]。\n'
	end

	return body
end

--よう於單いち數字すうじ性質せいしつ輸出ゆしゅつ (支援しえんきゃくせい)
function p.singleNumberInformation(frame)
	if numdata == nil then numdata = require("Module:Number/data") end
	-- For calling from #invoke.
    local args
    local can_math, SemiperfectNumber = false, true
	local all_list = {"負數ふすう","自然しぜんすう","整數せいすう","しつすう","孿生しつすう","梅森うめもりただしすう","こう斯質すう","ごうすう","しつ因數いんすう分解ぶんかい","こう斯整すう分解ぶんかい","虧數",
		"過剩かじょうすう","完全かんぜんすう","はん完全かんぜんすう","本原もとはらはん完全かんぜんすう","奇異きいすう","おうなんじ調和ちょうわすう","こう合成ごうせいすう","尋常じんじょうすう","はんしつすう","佩服すう","平方へいほうすう因數いんすうてきすう",
		"くさびがたすう","平方へいほうすう","立方りっぽうすう","ひろしらくあまかつすう","佩爾すう","斐波ちぎりすう","かいじょう","しつすうかいじょう","自我じがすう","哈沙とくすう","ぜん哈沙とくすう","とうすうすう",
		"節儉せっけんすう","奢侈しゃしすう","みつおっとすう","不可ふか及數","作圖さくず多邊形たへんけい"};
	local print_list, addit_print_list, print_prop_list, print_black_list, black_list = {}, {}, {}, {}, {"自然しぜんすう","整數せいすう","こう斯整すう分解ぶんかい"};
    if frame == mw.getCurrentFrame() then
        -- We're being called via #invoke. The args are passed through to the module
        -- from the template page, so use the args that were passed into the template.
        args = getArgs(frame) --frame.args
        local yesno = require('Module:Yesno')
        can_math = yesno(args['use math'] or args['use_math'])
        SemiperfectNumber = yesno(args['SemiperfectNumber'] or args['semiperfectNumber'] or 
        	args['Semiperfect Number'] or args['semiperfect Number'] or args['Semiperfect_Number'] or args['semiperfect_Number'] or 'yes')
    else
        -- We're being called from another module or from the debug console, so assume
        -- the args are passed in directly.
        args = frame
    end
    if args['other_print_list'] or args['other print list'] then
    	addit_print_list = mw.text.split(args['other_print_list'] or args['other print list'] or '',',')
   	end
    if args['print_list'] or args['print list'] then
        print_list = mw.text.split(args['print_list'] or args['print list'] or '',',')
    end
    if args['print_black_list'] or args['print black list'] then
        print_black_list = mw.text.split(args['print_black_list'] or args['print black list'] or '',',')
    end
    local print_list_table, print_list_array = {}, {}
    for k,v in pairs(print_list) do local val_iter = mw.text.trim(v) if val_iter ~= '' then print_list_table[val_iter] = 1 end end
	for k,v in pairs(print_list_table) do print_list_array[#print_list_array + 1] = k end
	if #print_list_array <= 0 then
		for k,v in pairs(all_list) do local val_iter = mw.text.trim(v) if val_iter ~= '' then print_list_table[val_iter] = 1 end end
	end
	for k,v in pairs(print_black_list) do 
		local val_iter = mw.text.trim(v) 
		if val_iter ~= '' then 
			print_list_table[val_iter] = nil 
		end 
	end
	for k,v in pairs(black_list) do 
		local val_iter = mw.text.trim(v) 
		if val_iter ~= '' then 
			print_list_table[val_iter] = nil 
		end 
	end
	for k,v in pairs(addit_print_list) do 
		local val_iter = mw.text.trim(v) 
		if val_iter ~= '' then 
			print_list_table[val_iter] = 1
		end
	end
	if #print_list_array > 0 then
		for k,v in pairs(print_list) do 
			local val_iter = mw.text.trim(v) 
			if (tonumber(print_list_table[val_iter]) or 0) == 1 then
				print_prop_list[#print_prop_list + 1] = val_iter
				print_list_table[val_iter] = print_list_table[val_iter] + 1
			end
		end
	else
		for k,v in pairs(all_list) do 
			local val_iter = mw.text.trim(v) 
			if (tonumber(print_list_table[val_iter]) or 0) == 1 then
				print_prop_list[#print_prop_list + 1] = val_iter
				print_list_table[val_iter] = print_list_table[val_iter] + 1
			end
		end
	end
    local body, number = '', tonumber(args[1] or args['1'])

	--例外れいがい處理しょり : NaNいん平方根へいほうこん存在そんざい造成ぞうせいたん除法じょほうじょしつすう無窮むきゅう迴圈
	if mw.ustring.lower(tostring(number)) == 'nan' then 
		return require("Module:Error").error({[1]="錯誤さくご\'" .. (args[1] or args['1'] or args['start'] or args['end']) .. '\' '
			.. 'いちすう-{}-。'
		})
	end
	
	--例外れいがい處理しょり : あずか內的數字すうじただしおうおくすすむたん除法じょほう做因すう分解ぶんかいてき數字すうじ
	local real, imag = (number or 0), 0
	if number == nil then 
		local test_str = mw.ustring.lower(mw.text.trim(args[1] or args['1']))
		number = p._checkInf(test_str)
		if number == nil then 
			real,imag = p._checkAddSubtract(test_str)
			if real~=nil and imag~=nil then
				number = math.sqrt(real*real+imag*imag)
			end
		end
		--例外れいがい處理しょり : 數字すうじてき東西とうざい直接ちょくせつ告知こくち錯誤さくご
		if number == nil then 
			return require("Module:Error").error({[1]="錯誤さくご:「" .. (args[1] or args['1'] or args['start'] or args['end']) .. '」'
				.. 'いちすう-{}-。'
			})
		end
	end
	
	--ちょう處理しょり範圍はんい
    if p.PrimeTable.table_max == nil then p.PrimeTable = require('Module:Factorization') end
	if (number or 0) > p.PrimeTable.limit or -(number or 0) > p.PrimeTable.limit then 
			return require("Module:Error").error({[1]="錯誤さくご無法むほう處理しょりすう-{}-「" .. (args[1] or args['1'] or args['start'] or args['end']) .. '」,'
				.. '其[[絕對ぜったい值]]やめちょう支援しえんてき處理しょり範圍はんい(35184372088831)。'
			})
	end
	
	if imag ~= 0 then return p._simpleComplexText(real, imag, can_math, frame) end

	--例外れいがい處理しょり : 整數せいすうてき數字すうじおくすすむたん除法じょほう當然とうぜんざい根號こんごうn內不かい整除せいじょいん此會とうなりしつすう所以ゆえん不能ふのうはた整數せいすうてき數字すうじおくすすむたん除法じょほう做因すう分解ぶんかい
	if math.abs(math.floor(number) - number) > 0 then
		return p._simpleRealText(number, can_math, frame)
	end
	
	--------------------------------------------
	----- 例外れいがい處理しょり結束けっそく開始かいしたん除法じょほう因數いんすう分解ぶんかい -----
	--------------------------------------------
	
	--因數いんすう分解ぶんかい
	local primedata = p.PrimeTable._factorization(number)
	local divdata = p.PrimeTable._findDivisorByPrimeFactor(primedata)
 	--因數いんすう分解ぶんかい發生はっせい錯誤さくご停止ていし執行しっこうなみかえしかい錯誤さくご
	if primedata.has_err ~= nil or divdata.has_err ~= nil then
		local Error = require("Module:Error")
		if primedata.has_err ~= nil then return body .. '\n' .. Error.error({[1]="錯誤さくご:" .. primedata.has_err})
		else return body .. '\n' .. Error.error({[1]="錯誤さくご:" .. divdata.has_err}) end
	end
	
	--さんせい<math>格式かくしき,以印しつ因數いんすう分解ぶんかい於條
	local times = " x "
	local pow_h = "<sup>"
	local pow_f = "</sup>"
	local left_ = "("
	local right_ = ")"
	if can_math then
		times = "\\times "
		pow_h = "^{"
		pow_f = "} "
		left_ = "\\left( "
		right_ = "\\right) "
	end
	
	local is_gprime = true
	local gfactors_str = ''
	if tonumber(print_list_table["こう斯整すう分解ぶんかい"] or -1) >= 1 then
		if cmath==nil then cmath = require("Module:Complex Number").cmath.init() end
		local cnum = cmath.toComplexNumber(tostring(number))
		is_gprime = cmath.is_prime_quadrant1(cnum)
		if is_gprime ~= nil then
			if not is_gprime then
				local gprimedata, gfactors = p.PrimeTable._gaussianFactorization(tostring(number)), {}
				for first,second in pairs(gprimedata) do
					if first ~= 'has_err' then 
						local complex_num = cmath.toComplexNumber(first) 
						if complex_num.real ~= 0 and complex_num.imag ~= 0 then
							gfactors[left_ .. tostring(first) .. right_] = second
						else
							gfactors[first] = second
						end
					end
				end
				--しるししつ因數いんすう分解ぶんかい於條
				gfactors_str = p.PrimeTable.create_factorization_string(gfactors, times, pow_h, pow_f)
				if mw.text.trim(gfactors_str) == '' then is_gprime = true end
				if can_math then 
					gfactors_str = frame:callParserFunction{name = "#tag:math", args = {gfactors_str}} 
				end
			end
		end
	end
	
	local is_prime = true --表示ひょうじ數字すうじためしつすう
	local num_sqrt = math.sqrt(number) --表示ひょうじ數字すうじてき平方根へいほうこん
	local admirable_div = nil --表示ひょうじ佩服すうてきしょうげん因數いんすう
	local is_unusual = nil --表示ひょうじ數字すうじいやゆうだい平方根へいほうこんてきしつ因數いんすう
	local div_sum = 0 --因數いんすう
	local prime_count = 0 --あい異質いしつ因數いんすう個數こすう
	local div_sum_harmonic = 0 --因數いんすう調和ちょうわ總和そうわ
	local div_harmonic_avg = 0.001 --因數いんすう調和ちょうわ平均へいきんすう
	local div_count = 0 --因數いんすう數量すうりょう
	local exp_num = 0 --しつ因數いんすうそう指數しすう (Ωおめが)
	local prime_digits = 0
	local buffer_text = ''
	local mersenne_prime_for_perfect_number = ''
	--掃描しつ因數いんすう
	for first,second in pairs(primedata) do
		if first ~= 'has_err' then 
			if first ~= 1 and first ~= number then 
				is_prime = false
			end
			if first ~= 1 then
				--判斷はんだんため尋常じんじょうすう (いやゆうだい平方根へいほうこんてきしつ因數いんすう)
				if first > num_sqrt then is_unusual = first end
				--計算けいさんしつ因數いんすうそう指數しすう (Ωおめが)
				exp_num = exp_num + second
				--計算けいさんしょう異質いしつ因數いんすう數量すうりょう
				prime_count = prime_count + 1
				prime_digits = prime_digits + 
				mw.ustring.len( mw.ustring.format( "%d",math.floor(math.abs(first)) ) )
				if second > 1 then prime_digits = prime_digits + 
				mw.ustring.len( mw.ustring.format( "%d",math.floor(math.abs(second)) ) ) end
			end
		end
	end
	
	--計算けいさん因數いんすう
	for first,second in pairs(divdata) do
		if first ~= 'has_err' then 
			if second ~= number then div_sum = div_sum + second end
			div_sum_harmonic = div_sum_harmonic + (1.0 / second)
			div_count = div_count + 1
		end
	end
	
	--計算けいさん因數いんすうてき調和ちょうわ平均へいきんすう
	div_harmonic_avg = (div_count + 0.000000) / div_sum_harmonic
	for first,second in pairs(divdata) do
		if first ~= 'has_err' then 
			--判斷はんだん數字すうじため佩服すう
			if div_sum - second * 2 == number then admirable_div = second end
		end
	end
	
	--しるししつ因數いんすう分解ぶんかい於條
	local factors_str = p.PrimeTable.create_factorization_string(primedata, times, pow_h, pow_f)
	if can_math then 
		factors_str = frame:callParserFunction{name = "#tag:math", args = {factors_str}} 
		if div_sum == number then
			mersenne_prime_for_perfect_number= "2^{" .. tostring(primedata[2]) .. "}\\times\\left( 2^{" .. 
				tostring(primedata[2]+1) .. "}-1\\right)"
			mersenne_prime_for_perfect_number = frame:callParserFunction{name = "#tag:math", args = {mersenne_prime_for_perfect_number}} 
		end
	end
	
	local simi_div = {}
	if div_sum > number and number > 0 then 
		if SemiperfectNumber and #divdata <= 32 then
			--此為指數しすう時間じかん複雜ふくざつ演算えんざんほういん此當因數いんすう超過ちょうか32のり放棄ほうき計算けいさん
			simi_div = p._checkSemiperfectNumberByDivisor(divdata)
		end
	end
	
	local printer = numdata.getIntegerInfoPrinter()
	printer:init({
		number=number,
		is_prime=is_prime,
		admirable_div=admirable_div,
		is_unusual=is_unusual,
		div_sum=div_sum,
		prime_count=prime_count,
		div_sum_harmonic=div_sum_harmonic,
		div_harmonic_avg=div_harmonic_avg,
		div_count=div_count,
		exp_num=exp_num,
		prime_digits=prime_digits,
		divdata=divdata,
		primedata=primedata,
		simi_div=simi_div,
		factors_str=factors_str,
		mersenne_prime_for_perfect_number=mersenne_prime_for_perfect_number,
		is_gprime=is_gprime,
		gfactors_str=gfactors_str,
	});

	local text = ''
	for k,v in pairs(print_prop_list) do
		if _flag_use_user_define_string == nil and mw.text.trim(args[v] or "") ~= "" then _flag_use_user_define_string = true end
		text = mw.text.trim(printer:printInfo(args[v] or "",v) or '')
		if text ~= nil and text ~= '' then
			body = body .. text ..'\n'
		end
	end
	body = mw.text.trim(body)
	if (_flag_use_user_define_string == true) and 
		(not (_flag_mass_output == true)) then body = body .. "[[Category:使用しよう定義ていぎModule:Number語句ごくてきぺーじめん]]" end
	return body
end

return p