, Volume 9, Issue 4, pp 313–328

Sieve algorithms for perfect power testing

  • Eric Bach
  • Jonathan Sorenson

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=xk. The usual algorithm to recognize perfect powers computes approximatekth roots fork≤log2n, and runs in time O(log3n log log logn).

First we improve this worst-case running time toO(log3n) by using a modified Newton's method to compute approximatekth roots. Parallelizing this gives anNC2 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(log2n).

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

Authors and Affiliations

  • Eric Bach
    • 1
  • Jonathan Sorenson
    • 2
  1. 1.Computer Sciences DepartmentUniversity of Wisconsin-MadisonMadisonUSA
  2. 2.Department of Mathematics and Computer ScienceButler UniversityIndianapolisUSA

Personalised recommendations