# [Rust], score \$2 \uparrow\uparrow\uparrow 126\$ <!-- language-all: lang-rust --> fn main(){let b='~' as usize;let mut n=b+b;for _ in b..n{n<<=n;for _ in b..n{n<<=n;print!("{}",n)}}} [Try it online!][TIO-kgs2cxda] Note that the code's validity is dependent on the assumption that a computer with infinite memory will have an arbitrary precision pointer to index the infinite memory. I also attempted to write a version that wouldn't overflow instantly with arbitrary precision integers but it still overflowed on the second bitshift. ## Size analysis: A bit-shifting \$n\$ leftward \$n\$ times is equivalent to the function \$n2^n = f_2(n)\$. My code applies recursion in a manner consistent with the fast-growing hierarchy to achieve \$f_4(n)\$. let the final value of the local variable `n` in my code above be denoted as \$o\$. It will require \$log(o)\$ bitshifts to create \$o\$. The `print!` statement runs every time the inner bitshift does, meaning the order of magnitude of my score is the sum of the change in the order of magnitude of the variable `n` between the inner bitshifts. The order of magnitude of `n` should be growing exponentially since it is being tetrated, so the expression for the order of magnitude of the result is $$\sum_i^{log(o)}2^i$$ telling us that the final number is \$10^{2^{log(o)+1}-1}\$ which is not meaningfully different from \$o\$ itself since \$o\$ in this case is \$f_4(126)\$ or \$2 \uparrow\uparrow\uparrow 126\$. Please let me know if this explanation seems wrong or incomplete because I am new to the domain of big numbers. [Rust]: https://www.rust-lang.org/ [TIO-kgs2cxda]: https://tio.run/##bchLCoAgFAXQrbycaBRuQF1LJCgIeQs/k8S2bjTvDE@quYzhQXEPEHM7XCFr@MNpz1RzuJ36KtZCMHaxyp@JNgogKyUatDb4vSsFlEmw1tmKufc@xgs "Rust – Try It Online"