Bill Allombert on Sat, 10 Jan 2026 17:31:01 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: isprime() runtime jump between 10^18 and 10^20?


On Sat, Jan 10, 2026 at 04:20:18PM +0100, hermann@stamm-wilbrandt.de wrote:
> On 2026-01-06 20:59, hermann@stamm-wilbrandt.de wrote:
> > ...
> > Runtime reduced from 5min to 5 seconds, and from 23h to 19 minutes
> > using parsum()!
> > 
> > hermann@x3950-X6:~$ nproc
> > 384
> > hermann@x3950-X6:~$ numactl -C 0-191 gp -q
> > ? a(n)=parsum(k=1, 10^n, isprime(k^2+(k+1)^2));
> > ? #
> >    timer = 1 (on)
> > ? a(9)
> > cpu time = 14min, 51,150 ms, real time = 4,819 ms.
> > 68588950
> > ? a(10)
> > cpu time = 59h, 57min, 42,370 ms, real time = 18min, 46,398 ms.
> > 614983774

In this kind of computation, only the k such that k^2+(k+1)^2 is pseudoprime
actually matter and their density is about 1/log(k^2+(k+1)^2) ~ 1/(2*log(2*k))
which is decreasing, so the number of primes to check is increasing
sublinearly.

Cheers,
Bill.