Getting familiar with BCPL Write these programs in BCPL 1. Read an int from the user and print the Collatz sequence starting at that number. In case you have forgotten: from any number N the next number in the sequence is N / 2 if N is even, and 3 * N + 1 is N is odd. The last number in the sequence is 1. Assume the user's input will be greater than zero. e.g. input 1, output 1 input 2, output 2 1 input 3, output 3 10 5 16 8 4 2 1 input 4, output 4 2 1 2. Read an int M from the user and print the lengths (lengths only) of the Collatz sequences starting from each value in the range 1 to M inclusive. e.g. input 4 output 1: 1 2: 2 3: 8 4: 3 3. Print a nicely formatted multiplication table for numbers ranging between 1 and whatever the user enters. The numbers should be neatly lined up in columns. e.g. input 6 output 1 2 3 4 5 6 2 4 6 8 10 12 3 6 9 12 15 18 4 8 12 16 20 24 5 10 15 20 25 30 6 12 18 24 30 36 4. Create an array containing the cubes of all the integers from 0 to 1000, then use a binary chop search to find the cube root of all of the numbers entered by the user. If a number does not have an exact cube root in the range 0 to 1000 print a warning instead. e.g. inputs 8 outputs 2 1000 10 970295 no exact cube root 33076161 321 0 0 5. Quicksort an array of N random numbers (N as usual wil be typed by the use) I suggest that you attempt this directly in BCPL. Only start with a solution in a more familiar language if you run into trouble. Print the unsorted random array before sorting it and print the sorted result at the end. Restrict the random numbers to a reasonable range and print them so that they line up, that way errors will be a little easier to spot. e.g. before sorting 4613 5737 4113 432 5100 1006 1342 4198 2771 5317 after sorting 432 1006 1342 2771 4113 4198 4613 5100 5317 5737