SmallestRootInt( n )
SmallestRootInt returns the smallest root of the integer n.
The smallest root of an integer n is the integer r of smallest absolute value for which a positive integer k exists such that n = r^k.
gap> SmallestRootInt( 2^30 );
2
gap> SmallestRootInt( -(2^30) );
-4 # note that $(-2)^{30} = +(2^{30})$
gap> SmallestRootInt( 279936 );
6
gap> LogInt( 279936, 6 );
7
gap> SmallestRootInt( 1001 );
1001
SmallestRootInt can be used to identify and decompose powers of primes
as is demonstrated in the following example (see IsPrimePowerInt)
p := SmallestRootInt( q ); n := LogInt( q, p );
if not IsPrimeInt(p) then Error("GF: <q> must be a primepower"); fi;
GAP 3.4.4