22 lines
306 B
Go
22 lines
306 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"math/big"
|
|
)
|
|
|
|
func main() {
|
|
fmt.Println(factorial(800))
|
|
}
|
|
|
|
func factorial(n int64) *big.Int {
|
|
if n < 0 {
|
|
return nil
|
|
}
|
|
r := big.NewInt(1)
|
|
var f big.Int
|
|
for i := int64(2); i <= n; i++ {
|
|
r.Mul(r, f.SetInt64(i))
|
|
}
|
|
return r
|
|
}
|