Special neighbor primes: Difference between revisions
Content added Content deleted
m (→{{header|Julia}}: include 3) |
m (→{{header|Julia}}: stretching) |
||
Line 135: | Line 135: | ||
<lang julia>using Primes |
<lang julia>using Primes |
||
function specialneighbors(N) |
function specialneighbors(N, savepairs=true) |
||
neighbors, p1 = Pair{Int}[], 2 |
neighbors, p1, pcount = Pair{Int}[], 2, 0 |
||
while (p2 = nextprime(p1 + 1)) < N |
while (p2 = nextprime(p1 + 1)) < N |
||
isprime(p2 + p1 - 1 |
if isprime(p2 + p1 - 1) |
||
savepairs && push!(neighbors, p1 => p2) |
|||
pcount += 1 |
|||
end |
|||
p1 = p2 |
p1 = p2 |
||
end |
end |
||
return neighbors |
return neighbors, pcount |
||
end |
end |
||
spn, n = specialneighbors(100) |
|||
println("Neighbor primes, p1 and p2, where p1 + p2 - 1 is prime:") |
|||
println("$n special neighbor prime pairs under 100:") |
|||
println("p1 p2 p1 + p2 - 1\n--------------------------") |
println("p1 p2 p1 + p2 - 1\n--------------------------") |
||
for (p1, p2) in specialneighbors(100) |
for (p1, p2) in specialneighbors(100)[1] |
||
println(lpad(p1, 2), " ", rpad(p2, 7), p1 + p2 - 1) |
println(lpad(p1, 2), " ", rpad(p2, 7), p1 + p2 - 1) |
||
end |
end |
||
print("\nCount of such prime pairs under 1,000,000,000: ", |
|||
specialneighbors(1_000_000_000, false)[2]) |
|||
</lang>{{out}} |
</lang>{{out}} |
||
<pre> |
<pre> |
||
13 special neighbor prime pairs under 100: |
|||
Neighbor primes, p1 and p2, where p1 + p2 - 1 is prime: |
|||
p1 p2 p1 + p2 - 1 |
p1 p2 p1 + p2 - 1 |
||
-------------------------- |
-------------------------- |
||
Line 167: | Line 174: | ||
67 71 137 |
67 71 137 |
||
73 79 151 |
73 79 151 |
||
Count of such prime pairs under 1,000,000,000: 6041231 |
|||
</pre> |
</pre> |
||