Tim wrote:
In PythonWin I'm running a program to find the 13th root (say) of millions of hundred-digit numbers. I'm using
    n = 13
    root = base**(1.0/n)
which correctly computes the root to a large number of decimal places, but therefore takes a long time. All I need is the integer component. Is there a quicker way?
Have you tried an iterative approach?

def root_13(x):
    step = 1
    while step ** 13 < x:
        step *= 2
    root = 0
    while step:
        if (root + step) ** 13 <= x:
            root += step
        step //= 2
    return root

Probably not that fast in Python, though. numpy or psyco might help.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to