, Volume 9, Issue 4, pp 313–328

Sieve algorithms for perfect power testing


  • Eric Bach
    • Computer Sciences DepartmentUniversity of Wisconsin-Madison
  • Jonathan Sorenson
    • Department of Mathematics and Computer ScienceButler University

DOI: 10.1007/BF01228507

Cite this article as:
Bach, E. & Sorenson, J. Algorithmica (1993) 9: 313. doi:10.1007/BF01228507


A positive integern is a perfect power if there exist integersx andk, both at least 2, such thatn=x k . The usual algorithm to recognize perfect powers computes approximatekth roots fork≤log 2 n, and runs in time O(log3 n log log logn).

First we improve this worst-case running time toO(log3 n) by using a modified Newton's method to compute approximatekth roots. Parallelizing this gives anNC 2 algorithm.

Second, we present a sieve algorithm that avoidskth-root computations by seeing if the inputn is a perfectkth power modulo small primes. Ifn is chosen uniformly from a large enough interval, the average running time isO(log2 n).

Third, we incorporate trial division to give a sieve algorithm with an average running time ofO(log2 n/log2 logn) and a median running time ofO(logn).

The two sieve algorithms use a precomputed table of small primes. We give a heuristic argument and computational evidence that the largest prime needed in this table is (logn)1+O(1); assuming the Extended Riemann Hypothesis, primes up to (logn)2+O(1) suffice. The table can be computed in time roughly proportional to the largest prime it contains.

We also present computational results indicating that our sieve algorithms perform extremely well in practice.

Key words

Perfect powers Number theoretic algorithms Riemann hypothesis Newton's method Sieve algorithms Parallel algorithms Average-case analysis

Copyright information

© Springer-Verlag New York Inc. 1993