// This example demonstrates how to use big.Int to compute the smallest // Fibonacci number with 100 decimal digits and to test whether it is prime. func Example_fibonacci() { // Initialize two big ints with the first two numbers in the sequence. a := big.NewInt(0) b := big.NewInt(1) // Initialize limit as 10^99, the smallest integer with 100 digits. var limit big.Int limit.Exp(big.NewInt(10), big.NewInt(99), nil) // Loop while a is smaller than 1e100. for a.Cmp(&limit) < 0 { // Compute the next Fibonacci number, storing it in a. a.Add(a, b) // Swap a and b so that b is the next number in the sequence. a, b = b, a } fmt.Println(a) // 100-digit Fibonacci number // Test a for primality. // (ProbablyPrimes' argument sets the number of Miller-Rabin // rounds to be performed. 20 is a good value.) fmt.Println(a.ProbablyPrime(20)) // Output: // 1344719667586153181419716641724567886890850696275767987106294472017884974410332069524504824747437757 // false }
func (a *Mpint) CmpInt64(c int64) int { if c == 0 { return a.Val.Sign() // common case shortcut } return a.Val.Cmp(big.NewInt(c)) }