I’ve been messing around with some terminal based calculators. For my cryptography class, we had to do some huge computations. Ive noticed that GNU bc is actually pretty slow at this:

[whoishex@localhost ~]$ time echo "(2^2000000)%7" | bc
real    0m12.295s
user    0m12.297s
sys     0m0.000s
[whoishex@localhost ~]$

Thats pretty slow! I tried bigger numbers and it would take minutes. In its place, I’ve started using the python shell.

[whoishex@localhost ~]$ time echo "(2**20000000)%7" | python -i 
Python 3.5.2 (default, Jun 28 2016, 08:46:01) 
[GCC 6.1.1 20160602] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 4

real    0m0.186s
user    0m0.170s
sys     0m0.017s
[whoishex@localhost ~]$

basically instant. Gnome-calculator, wolfram alpha, and literally any other modern calculator I can get my hands on is also equally fast. I think bc is trying to calculate 2^2000000 before modding it out, while the other programs implement some sort of method of repeated squares.