Hailstone sequence

Author: TimToady

The Hailstone sequence of numbers can be generated from a starting positive integer, n by:

* If n is 1 then the sequence ends. * If n is even then the next n of the sequence = n/2 * If n is odd then the next n of the sequence = (3 * n) + 1

The (unproven), Collatz conjecture is that the hailstone sequence for any starting number always terminates.

Task

Create a routine to generate the hailstone sequence for a number.

Use the routine to show that the hailstone sequence for the number 27 has 112 elements starting with 27, 82, 41, 124 and ending with 8, 4, 2, 1

Show the number less than 100,000 which has the longest hailstone sequence together with that sequence's length.

(But don't show the actual sequence)!

More

http://rosettacode.org/wiki/Hailstone_sequence#Raku

Source code: hailstone-sequence.pl

use v6;

sub hailstone($n) { $n, { $_ %% 2 ?? $_ div 2 !! $_ * 3 + 1 } ... 1 }

my @h = hailstone(27);
say "Length of hailstone(27) = {+@h}";
say ~@h;

my $m max= +hailstone($_) => $_ for 1..99_999;
say "Max length $m.key() was found for hailstone($m.value()) for numbers < 100_000";