In R mediante il programma che opera sui numeri naturali usabile col comando source("http://macosa.dima.unige.it/r.R"), calcola (esattamente) i valori di n! per n che va da 1 a 100 e confrontali con quelli ottenibili con la funzione di R factorial. O procedi analogamente confrontando gli esiti degli script factorial 1 e factorial 2.

Con R

source("http://macosa.dima.unige.it/r.R")
## 0! = 1, mettiamo in fact i successivi valori (da 1! a 200!)
fact <- NULL; fact[1] <- "1"; for(i in 2:100) fact[i] <- pro(fact[i-1],i)
## stampiamo i primi 100 valori
for(i in 1:100) print(fact[i])
# "1"
# "2"
# "3"
# ...
# "9332621544394415268169923885626670049071596826438162146859296389521759999322991
   5608941463976156518286253697920827223758251185210916864000000000000000000000000"
## Vediamo l'arrotondamento di 100!
app(fact[100])
# 9.332622e+157
## Vediamolo con 15 cifre
piu(app(fact[100]))
# 9.33262154439441e+157
## Vediamo il risultato del suo calcolo diretto
piu(factorial(100))
# 9.33262154439422e+157
## 100!, calcolato direttamente, è approssimato da R con "solo" 13 cifre buone

Dal punto di vista della pratica usuale non c'è alcuna differenza. Possiamo, comunque, valutare l'incidenza delle approssimazioni che intervengono nel calcolo. Potremmo scoprire che fino a 50! l'arrotodamento a 15 cifre del valore calcolato con factorial coincide con quello del valore esatto. Potremmo poi calcolare il fattoriale di qualunque numero, mentre con factorial si pu calcolare al massimo 170! Vediamo ad esempio il calcolo di 200!

fact <- NULL; fact[1] <- "1"; for(i in 2:200) fact[i] <- pro(fact[i-1],i)
## Se volessimo tutte le cifre useremmo  fact[200]  ottenendo:
# "7886578673647905035523632139321850622951359776...00000000"
## Altrimenti possiamo stabilire l'ordine di grandezza del numero calcolandone la lunghezza:
## la lunghezza di 71  2, che  7.1*10; quella di 712  3, che  7.12*10^2; quindi, dato che:
nchar(fact[200])
# 375
## 200!  circa:
#  7.886579*10^374

Con gli script

In alternativa, si può impiegare questo script, usabile online.
 

100! =
9332621544394415268169923885626670049071596826438162146859296389521
7599993229915608941463976156518286253697920827223758251185210916864
000000000000000000000000
[100! = 9.33262154439441e+157]
170! =
7257415615307998967396728211129263114716991681296451376543577798900
5618434017061578523507492426174595114909912378385207766660225654427
5302532890077320751090240043028005829560396661259965825710439855829
4257568966313439612262571094946806711205568880457193340212661452800
000000000000000000000000000000000000000
[170! = 7.257415615307994e+306]

Per il calcolo di 200! vedi gli "examples".

In ogni caso puoi ricorrere al software online WolframAlpha digitando 200!: ne otterrai il valore con tutte le cifre.