Jump to content

Successive prime differences: Difference between revisions

Added Wren
(Added Wren)
Line 1,744:
...for differences [4, 2], there are 1444 groups, where the first group = [7, 11, 13] and the last group = [997807, 997811, 997813]
...for differences [6, 4, 2], there are 306 groups, where the first group = [31, 37, 41, 43] and the last group = [997141, 997147, 997151, 997153]
</pre>
 
=={{header|Wren}}==
{{trans|Go}}
{{libheader|Wren-math}}
<lang ecmascript>import "/math" for Int
 
var successivePrimes = Fn.new { |primes, diffs|
var results = []
var dl = diffs.count
for (i in 0...primes.count-dl) {
var group = List.filled(dl+1, 0)
group[0] = primes[i]
var outer = false
for (j in i...i+dl) {
var cont = false
if (primes[j+1] - primes[j] != diffs[j-i]) {
outer = true
break
}
group[j-i+1] = primes[j+1]
}
if (!outer) results.add(group)
}
return results
}
 
var primes = Int.primeSieve(999999)
var diffsList = [ [2], [1], [2, 2], [2, 4], [4, 2], [6, 4, 2] ]
System.print("For primes less than 1,000,000:-\n")
for (diffs in diffsList) {
System.print(" For differences of %(diffs) ->")
var sp = successivePrimes.call(primes, diffs)
var cont = false
if (sp.count == 0) {
System.print(" No groups found")
cont = true
}
if (!cont) {
System.print(" First group = %(sp[0])")
System.print(" Last group = %(sp[-1])")
System.print(" Number found = %(sp.count)\n")
}
}</lang>
 
{{out}}
<pre>
For primes less than 1,000,000:-
 
For differences of [2] ->
First group = [3, 5]
Last group = [999959, 999961]
Number found = 8169
 
For differences of [1] ->
First group = [2, 3]
Last group = [2, 3]
Number found = 1
 
For differences of [2, 2] ->
First group = [3, 5, 7]
Last group = [3, 5, 7]
Number found = 1
 
For differences of [2, 4] ->
First group = [5, 7, 11]
Last group = [999431, 999433, 999437]
Number found = 1393
 
For differences of [4, 2] ->
First group = [7, 11, 13]
Last group = [997807, 997811, 997813]
Number found = 1444
 
For differences of [6, 4, 2] ->
First group = [31, 37, 41, 43]
Last group = [997141, 997147, 997151, 997153]
Number found = 306
</pre>
 
9,486

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.