33 lines
1 KiB
Text
33 lines
1 KiB
Text
with javascript_semantics
|
|
constant limit = iff(platform()=JS?1e7:1e8),
|
|
gslim = 250
|
|
sequence primes = get_primes_le(limit*4),
|
|
gapstarts = repeat(0,gslim)
|
|
for i=2 to length(primes) do
|
|
integer gap = primes[i]-primes[i-1]
|
|
if gapstarts[gap]=0 then
|
|
gapstarts[gap] = primes[i-1]
|
|
end if
|
|
end for
|
|
|
|
integer pm = 10, gap1 = 2
|
|
while true do
|
|
while gapstarts[gap1]=0 do gap1 += 2 end while
|
|
integer start1 = gapstarts[gap1],
|
|
gap2 = gap1 + 2
|
|
if gapstarts[gap2]=0 then
|
|
gap1 = gap2 + 2
|
|
else
|
|
integer start2 = gapstarts[gap2],
|
|
diff = abs(start2 - start1)
|
|
if diff>pm then
|
|
printf(1,"Earliest difference >%,d between adjacent prime gap starting primes:\n",{pm})
|
|
printf(1,"Gap %d starts at %,d, gap %d starts at %,d, difference is %,d.\n\n",
|
|
{gap1, start1, gap2, start2, diff})
|
|
if pm=limit then exit end if
|
|
pm *= 10
|
|
else
|
|
gap1 = gap2
|
|
end if
|
|
end if
|
|
end while
|