package Ġuk . t ld code . math . t ld math s Ċ Ċ import Ġjava . math . BigInteger ĊĊ Ċ object ĠFactor ial Ġ{ ĊĠĠĠ Ġoperator Ġfun Ġinvoke ( n : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġimplementation ( n , ĠBigInteger . ONE ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġimplementation ( n : BigInteger , result : BigInteger ): ĠBigInteger { ĊĠĠĠĠĠĠĠ Ġif ( n Ġ> ĠBigInteger . ZERO ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġimplementation ( n Ġ- ĠBigInteger . ONE , Ġresult Ġ* Ġn ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ Ċ }