On the Complexity of Computing Prime Tables

  • Martín Farach-Colton
  • Meng-Tsung Tsai
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9472)


Many large arithmetic computations rely on tables of all primes less than n. For example, the fastest algorithms for computing n! takes time \(\mathcal {O}(\mathrm {M}(n\log n) + \mathrm {P}(n))\), where \(\mathrm {M}(n)\) is the time to multiply two n-bit numbers, and \(\mathrm {P}(n)\) is the time to compute a prime table up to n. The fastest algorithm to compute \(\left( {\begin{array}{c}n\\ n/2\end{array}}\right) \) also uses a prime table. We show that it takes time \(\mathcal {O}(\mathrm {M}(n) + \mathrm {P}(n))\).

In various models, the best bound on \(\mathrm {P}(n)\) is greater than \(\mathrm {M}(n\log n)\), given advances in the complexity of multiplication [8, 13]. In this paper, we give two algorithms to computing prime tables and analyze their complexity on a multitape Turing machine, one of the standard models for analyzing such algorithms. These two algorithms run in time \(\mathcal {O}(\mathrm {M}(n\log n))\) and \(\mathcal {O}(n\log ^2 n/\log \log n)\), respectively. We achieve our results by speeding up Atkin’s sieve.

Given that the current best bound on \(\mathrm {M}(n)\) is \(n\log n 2^{\mathcal {O}(\log ^*n)}\), the second algorithm is faster and improves on the previous best algorithm by a factor of \(\log ^2\log n\). Our fast prime-table algorithms speed up both the computation of n! and \(\left( {\begin{array}{c}n\\ n/2\end{array}}\right) \).

Finally, we show that computing the factorial takes \(\Omega (\mathrm {M}(n \log ^{4/7 - \varepsilon } n))\) for any constant \(\varepsilon > 0\) assuming only multiplication is allowed.


Prime tables Factorial Multiplication Lower bound 


  1. 1.
    Agrawal, M., Kayal, N., Saxena, N.: Primes is in P. Ann. of Math. 2, 781–793 (2002)MathSciNetMATHGoogle Scholar
  2. 2.
    Atkin, A.O.L., Bernstein, D.J.: Prime sieves using binary quadratic forms. Math. Comput. 73(246), 1023–1030 (2004)MathSciNetCrossRefMATHGoogle Scholar
  3. 3.
    Behrend, F.A.: On sets of integers which contain no three terms in arithmetical progression. Proc. Natl. Acad. Sci. USA 32(12), 331–332 (1946)MathSciNetCrossRefMATHGoogle Scholar
  4. 4.
    Berkovich, S., Lapir, G.M., Mack, M.: A bit-counting algorithm using the frequency division principle. Softw. Pract. Exper. 30(14), 1531–1540 (2000)CrossRefMATHGoogle Scholar
  5. 5.
    Boiten, E.A.: Factorisation of the factorial-an example of inverting the flow of computation. Periodica Polytechnica SER. EL. ENG. 35(2), 77–99 (1991)Google Scholar
  6. 6.
    Borwein, P.B.: On the complexity of calculating factorials. J. Algorithms 6(3), 376–380 (1985)MathSciNetCrossRefMATHGoogle Scholar
  7. 7.
    Bourgain, J.: Roth’s theorems in progressions revisited. Tech. rep. (2007)Google Scholar
  8. 8.
    De, A., Kurur, P.P., Saha, C., Saptharishi, R.: Fast integer multiplication using modular arithmetic. In: 40th Annual ACM Symposium on Theory of Computing (STOC), pp. 499–506 (2008)Google Scholar
  9. 9.
    Dickson, L.E.: History of the Theory of Numbers: Divisibility and Primality. Dover Publications, New York (2005)MATHGoogle Scholar
  10. 10.
    Elkin, M.: An improved construction of progression-free sets. In: 21st Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 886–905 (2010)Google Scholar
  11. 11.
    Erdös, P., Turán, P.: On some sequences of integers. J. Lond. Math. Soc. 11, 261–264 (1936)MathSciNetCrossRefMATHGoogle Scholar
  12. 12.
    Farach-Colton, M., Tsai, M.: On the complexity of computing prime tables. CoRR abs/1504.05240 (2015)Google Scholar
  13. 13.
    Fürer, M.: Faster integer multiplication. In: 39th Annual ACM Symposium on Theory of Computing (STOC), pp. 57–66 (2007)Google Scholar
  14. 14.
    Fürer, M.: How fast can we multiply large integers on an actual computer? In: Pardo, A., Viola, A. (eds.) LATIN 2014. LNCS, vol. 8392, pp. 660–670. Springer, Heidelberg (2014) CrossRefGoogle Scholar
  15. 15.
    Grosswald, E.: Representations of Integers as Sums of Squares. Springer, New York (1985) CrossRefMATHGoogle Scholar
  16. 16.
    Guy, R.: Unsolved Problems in Number Theory. Springer, New York (2004) CrossRefMATHGoogle Scholar
  17. 17.
    Uspensky, J.V., Heaslet, M.A.: Elementary Number Theory. McGraw-Hill, New York (1939) MATHGoogle Scholar
  18. 18.
    Knuth, D.E.: The Art of Computer Programming: Seminumerical Algorithms. Addison-Wesley, Reading (1997) MATHGoogle Scholar
  19. 19.
    Kummer, E.: Über die ergänzungssätze zu den allgemeinen reciprocitätsgesetzen. Journal für die reine und angewandte Mathematik 44, 93–146 (1852)MathSciNetCrossRefGoogle Scholar
  20. 20.
    LeVeque, W.J.: Topics in Number Theory. Dover, New York (2002) MATHGoogle Scholar
  21. 21.
    Moser, L.: On non-averaging sets of integers. Can. J. Math. 5, 245–253 (1953)MathSciNetCrossRefMATHGoogle Scholar
  22. 22.
    Roth, K.F.: On certain sets of integers. J. Lond. Math. Soc. s1–28(1), 104–109 (1953)MathSciNetCrossRefMATHGoogle Scholar
  23. 23.
    Salem, R., Spencer, D.C.: On sets of integers which contain no three terms in arithmetical progression. Proc. Natl. Acad. Sci. USA 28(12), 561–563 (1942)MathSciNetCrossRefMATHGoogle Scholar
  24. 24.
    Schönhage, A., Grotefeld, A., Vetter, E.: Fast algorithms: A Multitape Turing Machine Implementation. Wissenschaftsverlag, B.I, Mannheim (1994) MATHGoogle Scholar
  25. 25.
    Schönhage, A., Strassen, V.: Schnelle multiplikation grosser zahlen. Computing 7, 281–292 (1971)MathSciNetCrossRefMATHGoogle Scholar
  26. 26.
    Ugur, A., Thompson, H.: The p-sized partitioning algorithm for fast computation of factorials of numbers. J. Supercomput. 38(1), 73–82 (2006)CrossRefGoogle Scholar
  27. 27.
    Vardi, I.: Computational Recreations in Mathematica. Addison-Wesley, New York (1991) MATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  1. 1.Rutgers UniversityNew BrunswickUSA

Personalised recommendations