From 4ac720f00db3fae138ba8fe0af3cc3d0524b71c2 Mon Sep 17 00:00:00 2001 From: Gerald Teschl Date: Mon, 21 Oct 2024 13:01:36 +0200 Subject: [PATCH] Update primes.py --- kryptools/primes.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kryptools/primes.py b/kryptools/primes.py index 6880e9f..4beb38c 100644 --- a/kryptools/primes.py +++ b/kryptools/primes.py @@ -125,12 +125,15 @@ def iroot(k: int, n: int) -> int: return n if k == 2: return isqrt(n) - rr = isqrt(n) + r = isqrt(n) + while r**k >= n: + rr = r + r = isqrt(r) r =rr + 1 k1 = k-1 while rr < r: r = rr - rr = (k1 * r + n // r ** k1) // k # Newton iteration + rr = (k1 * rr + n // rr ** k1) // k # Newton iteration return r def perfect_power(n: int) -> tuple|None: