Pythagorean triples: Difference between revisions

Content added Content deleted
(→‎{{header|Wren}}: Updated to Wren 0.4.0.)
Line 4,779: Line 4,779:
var p = s0 + s1 + s2
var p = s0 + s1 + s2
if (p <= maxPeri) {
if (p <= maxPeri) {
prim = prim + 1
prim = prim + 1
total = total + (maxPeri/p).floor
total = total + (maxPeri/p).floor
System.write("") // fixes a VM recursion bug
newTri.call( 1*s0-2*s1+2*s2, 2*s0-1*s1+2*s2, 2*s0-2*s1+3*s2)
newTri.call( 1*s0-2*s1+2*s2, 2*s0-1*s1+2*s2, 2*s0-2*s1+3*s2)
newTri.call( 1*s0+2*s1+2*s2, 2*s0+1*s1+2*s2, 2*s0+2*s1+3*s2)
newTri.call( 1*s0+2*s1+2*s2, 2*s0+1*s1+2*s2, 2*s0+2*s1+3*s2)
Line 4,793: Line 4,792:
total = 0
total = 0
newTri.call(3, 4, 5)
newTri.call(3, 4, 5)
var secs = (System.clock - sc).round
var secs = (System.clock - sc).round
System.print("Up to %(maxPeri): %(total) triples, %(prim) primitives, %(secs) seconds")
System.print("Up to %(maxPeri): %(total) triples, %(prim) primitives, %(secs) seconds")
maxPeri = 10 * maxPeri
maxPeri = 10 * maxPeri
Line 4,799: Line 4,798:


{{out}}
{{out}}
Timings are for an Intel Core i7-8565U machine running Wren 0.2.0 on Ubuntu 18.04.
Timings are for an Intel Core i7-8565U machine running Wren 0.4.0 on Ubuntu 20.04.
<pre>
<pre>
Up to 100: 17 triples, 7 primitives, 0 seconds
Up to 100: 17 triples, 7 primitives, 0 seconds
Line 4,806: Line 4,805:
Up to 100000: 64741 triples, 7026 primitives, 0 seconds
Up to 100000: 64741 triples, 7026 primitives, 0 seconds
Up to 1000000: 808950 triples, 70229 primitives, 0 seconds
Up to 1000000: 808950 triples, 70229 primitives, 0 seconds
Up to 10000000: 9706567 triples, 702309 primitives, 1 seconds
Up to 10000000: 9706567 triples, 702309 primitives, 0 seconds
Up to 100000000: 113236940 triples, 7023027 primitives, 5 seconds
Up to 100000000: 113236940 triples, 7023027 primitives, 4 seconds
Up to 1000000000: 1294080089 triples, 70230484 primitives, 51 seconds
Up to 1000000000: 1294080089 triples, 70230484 primitives, 45 seconds
Up to 10000000000: 14557915466 triples, 702304875 primitives, 554 seconds
Up to 10000000000: 14557915466 triples, 702304875 primitives, 463 seconds
</pre>
</pre>