Successive prime differences: Difference between revisions
Content added Content deleted
(Added Wren) |
|||
Line 1,744: | 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 [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] |
...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> |
</pre> |
||