Hailstone sequence: Difference between revisions
Content deleted Content added
imported>Arakov |
Not a robot (talk | contribs) Add Refal |
||
Line 8,829: | Line 8,829: | ||
<pre>the hail sequence of 27 has length 112 and has the form 27 82 41 ... 4 2 1 |
<pre>the hail sequence of 27 has length 112 and has the form 27 82 41 ... 4 2 1 |
||
the number less than 100000 with the longest hail sequence is 77031 with length 351</pre> |
the number less than 100000 with the longest hail sequence is 77031 with length 351</pre> |
||
=={{header|Refal}}== |
|||
<syntaxhighlight lang="refal">$ENTRY Go { |
|||
= <ShowHailstone 27> |
|||
<ShowLongest 100000>; |
|||
} |
|||
Hailstone { |
|||
1 = 1; |
|||
s.N, <Mod s.N 2>: { |
|||
0 = s.N <Hailstone <Div s.N 2>>; |
|||
1 = s.N <Hailstone <+ 1 <* 3 s.N>>>; |
|||
}; |
|||
}; |
|||
ShowHailstone { |
|||
s.N, <Hailstone s.N>: e.Seq, |
|||
<Lenw e.Seq>: s.Len s.1 s.2 s.3 s.4 e.X s.D4 s.D3 s.D2 s.D1 |
|||
= <Prout 'The hailstone sequence for the number ' |
|||
<Symb s.N> ' has ' <Symb s.Len> ' elements,\n' |
|||
'starting with ' s.1 s.2 s.3 s.4 |
|||
'and ending with ' s.D4 s.D3 s.D2 <Symb s.D1>'.'>; |
|||
} |
|||
FindLongest { |
|||
s.Max = <FindLongest s.Max 1 1 1>; |
|||
s.Max s.Max s.Long s.Len = s.Long s.Len; |
|||
s.Max s.Cur s.Long s.Len, |
|||
<Hailstone s.Cur>: e.CurSeq, |
|||
<Lenw e.CurSeq>: s.CurLen e.X, |
|||
<+ s.Cur 1>: s.Next, |
|||
<Compare s.CurLen s.Len>: { |
|||
'+' = <FindLongest s.Max s.Next s.Cur s.CurLen>; |
|||
s.X = <FindLongest s.Max s.Next s.Long s.Len>; |
|||
}; |
|||
}; |
|||
ShowLongest { |
|||
s.Max, <FindLongest s.Max>: s.Long s.Len |
|||
= <Prout 'The number < ' <Symb s.Max> ' which has the longest' |
|||
' hailstone sequence is ' <Symb s.Long> '.\n' |
|||
'The length of its Hailstone sequence is ' |
|||
<Symb s.Len> '.'>; |
|||
};</syntaxhighlight> |
|||
{{out}} |
|||
<pre>The hailstone sequence for the number 27 has 112 elements, |
|||
starting with 27 82 41 124 and ending with 8 4 2 1. |
|||
The number < 100000 which has the longest hailstone sequence is 77031. |
|||
The length of its Hailstone sequence is 351.</pre> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |