分類
數學

階乘從1乘到99999的位數

階乘(Factorial)是從1 x 2 x 3 x …. x n 記作 n!

其中比較特別的是 0! = 1, 原因為 n! = n x (n-1)! 而 1! = 1 = 1 x 0! 所以定義了 0! = 1

不過今天不是要談這個, 而是要用程式計算 n! 的確實值, 用什麼程式語言可以做到呢? Python3

來看看程式吧:

p = 1
for i in range(1,100000):
  p *= i
print(p)
print(len(str(p)))

根據 Python 算出來的結果為 28242294079603478742934…….
共有 456569 位數.

厲害的地方是 Python 3 沒有位數的限制, 可以算出這麼多位, 真的太強了呢. 有興趣的朋友可以線上執行:

https://colab.research.google.com/drive/1ayDGtmAiWYRzhPXOUc_uefvQD8RXvIp_

以上為使用 Google colaboratory 服務執行. 記得要使用 Python 3 就沒有位數上限(有的話是在記憶體上限, Python 2則有位數的上限)

[2018/5/18 12:12]
補充一下, 使用 python 內建數學函數庫的方式:

import math  
p = math.factorial(99999)  
print(p)  
print(len(str(p)))  
type(p)

線上執行:

https://colab.research.google.com/drive/1_n9r6gq-p-7qoT6wjeiTVsnntwktaj8q

當然, 結果還是一樣的.