MathGroup Archive 1989

[Date Index] [Thread Index] [Author Index]

Search the Archive

Prime bug

  • Subject: Prime bug
  • From: wheeler at super.org
  • Date: Tue, 19 Sep 89 23:56:17 -0500
  • Apparently-to: mathgroup-out at yoda.ncsa.uiuc.edu

Here is a code fragment for computing the number of primes <= x for
moderate values of x.

PrimePi[x_?NumberQ] :=
Block[{n, m, avg, flrx = Floor[x]},
   m = LogIntegral[N[flrx]];
   n = Ceiling[m - LogIntegral[Sqrt[N[flrx]]]];
   m = Floor[m];
   While[ m != n+1,
          avg = Quotient[n+m,2];
          Print[n,"  ", Prime[n]];
          If[ flrx < Prime[avg], m = avg, n = avg]
   ];
   n
]

The thing to look at is the Print statement in the While loop.
Watch this:

Mathematica (sun3.68881) 1.2 (August 3, 1989) [With pre-loaded data]
by S. Wolfram, D. Grayson, R. Maeder, H. Cejtin,
   S. Omohundro, D. Ballman and J. Keiper
with I. Rivin and D. Withoff
Copyright 1988,1989 Wolfram Research Inc.

In[1]:= <<PrimePi.m
0.0666667 Second

In[2]:= p = Prime[105096565]
0.283333 Second

Out[2]= 2147462123

In[3]:= PrimePi[p]
105094402  2147415443
105094402  2147415443
105095608  2147417855		<-- Clearly not a prime!!
105096211  2147419061
105096513  2147419665
105096664  2147419967
105096739  2147420117
105096777  2147420193
105096796  2147420231
105096805  2147420249
105096810  2147420259
105096812  2147420263
105096813  2147420265
1.3 Second

Out[3]= 105096814		<-- Not the right answer.

In[4]:= Prime[105094402]
0.366667 Second

Out[4]= 2147368919		<-- This is not what is given in the list!

Why is there a difference in the Prime function within the
program and the Prime function on the top level?

Ferrell Wheeler
Supercomputing Research Center
wheeler at super.org
(301) 805-7360



  • Prev by Date: Available Packages
  • Next by Date: removal messages
  • Previous by thread: Available Packages
  • Next by thread: removal messages