# nth root

casevh casevh at gmail.com
Sun Feb 1 21:20:15 EST 2009

```On Feb 1, 1:04 pm, Mensanator <mensana... at aol.com> wrote:
> On Feb 1, 2:27 am, casevh <cas... at gmail.com> wrote:
>
> > On Jan 31, 9:36 pm, "Tim Roberts" <t.robe... at cqu.edu.au> wrote:
>
> > > Actually, all I'm interested in is whether the 100 digit numbers have an exact integral root, or not.  At the moment, because of accuracy concerns, I'm doing something like
>
> > >                     for root in powersp:
> > >                             nroot = round(bignum**(1.0/root))
> > >                             if bignum==long(nroot)**root:
> > >                                                              .........
> > > which is probably very inefficient, but I can't see anything better.....
>
> > > Tim
>
> > Take a look at gmpy and the is_power function. I think it will do
> > exactly what you want.
>
> And the root function will give you the root AND tell you whether
> it was an integral root:
>
> >>> gmpy.root(a,13)
>
> (mpz(3221), 0)
>
> In this case, it wasn't.
>
I think the original poster wants to know if a large number has an
exact integral root for any exponent. is_power will give you an answer
to that question but won't tell you what the root or exponent is. Once
you know that the number is a perfect power, you can root to find the
root.

>