From 28147ef6437e9415a88f53106a8bb3722f9df974 Mon Sep 17 00:00:00 2001 From: N3rdL0rd <168280212+N3rdL0rd@users.noreply.github.com> Date: Fri, 27 Jun 2025 20:43:20 -0500 Subject: [PATCH] feat(pow): Add progress bar --- docker-images/challenge/pow.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docker-images/challenge/pow.py b/docker-images/challenge/pow.py index b5ba8e32..d9329280 100755 --- a/docker-images/challenge/pow.py +++ b/docker-images/challenge/pow.py @@ -37,7 +37,15 @@ def python_sloth_root(x, diff, p): exponent = (p + 1) // 4 for i in range(diff): + if i % 100 == 0 or i == diff - 1: + progress = (i + 1) / diff + bar_len = 40 + filled_len = int(round(bar_len * progress)) + bar = '=' * filled_len + '-' * (bar_len - filled_len) + sys.stderr.write(f'\rSolving: [{bar}] {progress:.1%}') + sys.stderr.flush() x = pow(x, exponent, p) ^ 1 + sys.stderr.write('\n') return x def python_sloth_square(y, diff, p): @@ -48,7 +56,15 @@ def python_sloth_square(y, diff, p): def gmpy_sloth_root(x, diff, p): exponent = (p + 1) // 4 for i in range(diff): + if i % 100 == 0 or i == diff - 1: + progress = (i + 1) / diff + bar_len = 40 + filled_len = int(round(bar_len * progress)) + bar = '=' * filled_len + '-' * (bar_len - filled_len) + sys.stderr.write(f'\rSolving: [{bar}] {progress:.1%}') + sys.stderr.flush() x = gmpy2.powmod(x, exponent, p).bit_flip(0) + sys.stderr.write('\n') return int(x) def gmpy_sloth_square(y, diff, p):