34 lines
723 B
Text
34 lines
723 B
Text
DIMENSION stones(1000)
|
|
|
|
H27 = hailstone(27)
|
|
ALIAS(stones,1, first4,4)
|
|
ALIAS(stones,H27-3, last4,4)
|
|
WRITE(ClipBoard, Name) H27, first4, "...", last4
|
|
|
|
longest_sequence = 0
|
|
DO try = 1, 1E5
|
|
elements = hailstone(try)
|
|
IF(elements >= longest_sequence) THEN
|
|
number = try
|
|
longest_sequence = elements
|
|
WRITE(StatusBar, Name) number, longest_sequence
|
|
ENDIF
|
|
ENDDO
|
|
WRITE(ClipBoard, Name) number, longest_sequence
|
|
END
|
|
|
|
FUNCTION hailstone( n )
|
|
USE : stones
|
|
|
|
stones(1) = n
|
|
DO i = 1, LEN(stones)
|
|
IF(stones(i) == 1) THEN
|
|
hailstone = i
|
|
RETURN
|
|
ELSEIF( MOD(stones(i),2) ) THEN
|
|
stones(i+1) = 3*stones(i) + 1
|
|
ELSE
|
|
stones(i+1) = stones(i) / 2
|
|
ENDIF
|
|
ENDDO
|
|
END
|