Ulam numbers: Difference between revisions

Content added Content deleted
(→‎{{header|Go}}: Added a third version based on the XPL0 algorithm.)
m (→‎{{header|Phix}}: added XPL0's t<=2 trick for a 3.75x speed-up)
Line 350: Line 350:
sieve &= repeat(0,s-length(sieve))
sieve &= repeat(0,s-length(sieve))
for i=1 to length(ulams)-1 do
for i=1 to length(ulams)-1 do
sieve[u+ulams[i]] += 1
s = u+ulams[i]
t = sieve[s]+1
if t<=2 then
sieve[s] = t
end if
end for
end for
u = find(1,sieve,u+1)
u = find(1,sieve,u+1)
Line 380: Line 384:
The Haskell entry does not compile for me on either tio or repl.it<br>
The Haskell entry does not compile for me on either tio or repl.it<br>


The above algorithm can also yield "The 100,000th Ulam number is 1,351,223" in 4 minutes and 14s, for me.
The above algorithm can also yield "The 100,000th Ulam number is 1,351,223" in 1 minute and 40s, for me.
<small>(I fully expect translations of this better algorithm to run even faster, btw)</small>
<small>(I fully expect translations of this better algorithm to run even faster, btw)</small>