Hailstone sequence: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (add ABC) |
|||
Line 275: | Line 275: | ||
</pre> |
</pre> |
||
=={{header|ABC}}== |
|||
<syntaxhighlight lang="abc">HOW TO RETURN hailstone n: |
|||
PUT {} IN seq |
|||
WHILE 1=1: |
|||
PUT n IN seq[#seq] |
|||
SELECT: |
|||
n=1: RETURN seq |
|||
n mod 2=0: PUT floor(n/2) IN n |
|||
n mod 2=1: PUT 3*n+1 IN n |
|||
RETURN seq |
|||
PUT hailstone 27 IN h27 |
|||
WRITE "Length of Hailstone sequence for 27:", #h27/ |
|||
WRITE "First 4 elements:", h27[0], h27[1], h27[2], h27[3]/ |
|||
WRITE "Last 4 elements:", h27[#h27-4], h27[#h27-3], h27[#h27-2], h27[#h27-1]/ |
|||
PUT 0, 0 IN longest, length |
|||
FOR n IN {1..100000}: |
|||
PUT hailstone n IN hn |
|||
IF #hn > length: |
|||
PUT n, #hn IN longest, length |
|||
WRITE longest, "has the longest hailstone sequence < 100,000, of length:", length/</syntaxhighlight> |
|||
{{out}} |
|||
<pre>Length of Hailstone sequence for 27: 112 |
|||
First 4 elements: 27 82 41 124 |
|||
Last 4 elements: 8 4 2 1 |
|||
77031 has the longest hailstone sequence < 100,000, of length: 351</pre> |
|||
=={{header|ACL2}}== |
=={{header|ACL2}}== |
||
<syntaxhighlight lang="lisp">(defun hailstone (len) |
<syntaxhighlight lang="lisp">(defun hailstone (len) |