1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
# cinter const usable Arbitrary Precision (big) integers. ```rust const fn fib(n: usize) -> (AP, AP) { if n == 0 { return (AP::new(0), AP::new(1)); }; let (α, β) = fib(n >> 1); let γ = &α * ((&β << 1) - &α); let δ = &α * &α + &β * &β; if n & 1 == 0 { return (γ, δ); } let t = γ + &δ; (δ, t) } #[allow(long_running_const_eval)] pub const 1_MILLIONTH_FIBONACCI_NUMBER: AP = fib(1_000_000).0.globalize(); ```