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 |
||
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 |
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> |
||