fwiw, I messed around with primepi(n) and sum-of-primes-to(n) a few months
ago. (Sum of primes can be dealt with in a similar fashion to
primepi). Lehmer
didn't perform well in my attempts to apply it. The Wolfram page on
Lehmer
used to have an error in one of the summations, so take care if using
http://mathworld.wolfram.com/LehmersFormula.html
(I'm sorry but I can't see if it's still wrong right now. Weisstein didn't
acknowledge an attempt to report the problem, and I naven't retained a
copy of
my message.)
Timings for primepi(n), on a previous laptop:
+------+----------+-------+-------+--------+-----+-----+-----+----+------+
|Times |n= |1000000|1e7 |1e8 |1e9 |1e10 |1e11 |1e12|1e13 |
+------+----------+-------+-------+--------+-----+-----+-----+----+------+
|c++~ |primepi |1ms |5ms |14ms |150ms|1.1s |9.4s |86s |13m05s|
+------+----------+-------+-------+--------+-----+-----+-----+----+------+
|J |primepi |1ms |6ms |20ms |62ms |3.4s |16.6s|92s |8m15s |
+------+----------+-------+-------+--------+-----+-----+-----+----+------+
|J |Lehmer |4ms |22ms |190ms |2.2s |8m23s|.... |....|.... |
+------+----------+-------+-------+--------+-----+-----+-----+----+------+
|PariGP|my-primepi|100ms |616ms |4.4s |34.6s|4m27s|.... |....|.... |
+------+----------+-------+-------+--------+-----+-----+-----+----+------+
|PariGP|built-in |0.004ms|0.327ms|0.0011ms|104ms|27.8s|.... |....|.... |
+------+----------+-------+-------+--------+-----+-----+-----+----+------+
(Apologies if this doesn't display well - I've tried!)
On the present laptop, with an amd chip:
_1 p: <.1e8
5761455
timer'{.{:primepi <.1e8'
+---------+-------+
|0.0179977|5761455|
+---------+-------+
_1 p: <.1e10
|limit error
| _1 p:<.10000000000
timer'{.{:primepi <.1e10'
+-----+---------+
|3.857|455052511|
+-----+---------+
As the comparisons above demonstrate, my attempt at coding Lehmer in J
performed poorly. I code c and c++ very naively, not knowing them well,
so it's not surprising that J outperforms my c++ effort for larger n.
The first row of the Pari GP times are for my attempt at translating my
J function into its script. Pari GP's built-in primpi function has is
very fast for lower n, but degrades sharply for larger values. It might be
relevant that I initialise GP with parisize = 8000000, primelimit =
4270000000
The downside, as others have said, is that an efficient primepi
function does
NOT scan all primes on its way to counting or summing them!
Code available if interested.
Mike
On 22/03/2016 00:31, 'Jon Hough' via Chat wrote:
Since p: has a limit (why is that, by the way? I have written a pi(x) function
using Miessel's formula in another language and it does grind to a slowdown for
values much larger than 1e7, so that might be the reason. I'm assuming
internally J uses Miessel or Lehmer's formula.),
it might be better to "cheat" and just use a hardcoded value for pi(1e9).
https://primes.utm.edu/howmany.html (scroll down to table 1)
Also, possibly the worst idea ever, why not iterate from 2 to 1e9 and do prime
tests and keep a record of the previously found prime to compare the final
digits with the next prime, and keep a record of the comparisons. Probably
hopelessly slow, and inefficient.
--------------------------------------------
On Tue, 3/22/16, Raul Miller <[email protected]> wrote:
Subject: Re: [Jchat] primes
To: "Chat forum" <[email protected]>
Date: Tuesday, March 22, 2016, 12:14 AM
Oh, I coded wrong. The
limit error was from p:, but I should not have been
feeding it the value 1e9.
Sometimes I wonder how I get anything
done...
Thanks,
--
Raul
On Mon, Mar
21, 2016 at 11:03 AM, Roger Hui <[email protected]>
wrote:
>
> it should be straightforward to do the extra credit
problem
>
> I should
have checked. The extra credit problem is for 100,000,000
primes.
>
> _1 p:
_1+2^31
> 105097564
> p: 1e8
>
2038074751
>
> So the
limit error is not in p: .
>
>
>
>
>
>
> On Sun, Mar 20, 2016
at 4:44 PM, Raul Miller <[email protected]>
> wrote:
>
> > Rosettacode has a task now, for this
item.
> >
> > http://rosettacode.org/wiki/Prime_conspiracy#J
> >
> > And,
hypothetically speaking, it should be straightforward to do
the
> extra
> >
credit problem. But that doesn't work. Given:
> >
> > dgpairs=: 2
(,'->',])&":/\ 10 | p:
> > combine=: ~.@[ ,.~ ' ',.~
":@,.@(+//.)
> >
> > We can try this:
>
>
> > /:~ combine&;/|:
(~.;#/.~)@dgpairs@((+ i.)/)"1
> >
(1e6*i.1e3),.1e6+999>i.1e3
> >
> > |limit error: dgpairs
> >
> > ... but p:
doesn't work for values like 1e9 (1 p: works, but not
p:
> > itself).
>
>
> > And, for example, Roger has
worked out some ways of dealing with large
> > primes -- see looking at
> > http://code.jsoftware.com/wiki/Essays/Primality_Tests
-- but we don't
> have
> > anything that's a drop in
replacement for the p: monad.
> >
> > So this presents something of a
problem - how would we tackle a problem
>
> like this?
> >
> > (Please feel free to change forum to
programming if you've got working
>
code
> > rather than just
ideas...).
> >
>
> Thanks,
> >
>
> --
> > Raul
>
>
> >
> >
> >
> > On Tue, Mar
15, 2016 at 7:02 AM, Cliff Reiter <[email protected]>
> > wrote:
> >
> > > A look at the frequencies of
pairs of last digits of successive primes:
> > >
/:~({.,#)/.~2]\10|p:4+i.1e7
> >
>
> > > 1 1 446808
> > >
> > > 1
3 756071
> > >
>
> > 1 7 769924
> > >
> > > 1 9 526953
>
> >
> > > 3 1 593196
> > >
> > > 3
3 422302
> > >
>
> > 3 7 714795
> > >
> > > 3 9 769915
>
> >
> > > 7 1 639383
> > >
> > > 7
3 681759
> > >
>
> > 7 7 422289
> > >
> > > 7 9 756852
>
> >
> > > 9 1 820369
> > >
> > > 9
3 640076
> > >
>
> > 9 7 593275
> > >
> > > 9 9 446032
>
> >
> > > The 1 follows 1 as
rare as 9 follows 9, but rarer is 3 follows 3 as
> rare
> > > as 7
follows 7. 9 1 most popular! Very curious. Probably should
move to
> > > JProg' Best,
Cliff
> > >
>
> >
> > >
> > >
> > >
On 3/14/2016 12:03 PM, R.E. Boss wrote:
>
> >
> > >>
> > >>
> >
>
https://www.quantamagazine.org/20160313-mathematicians-discover-prime-conspiracy/
> > >> R.E. Boss
> > >>
----------------------------------------------------------------------
> > For
> >
>> information about J forums see http://www.jsoftware.com/forums.htm
>
> >>
> > >
> > >
----------------------------------------------------------------------
> > > For information about J forums
see http://www.jsoftware.com/forums.htm
> > >
> >
----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
>
----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm