Design of crypto solution. input::=#pair, pair::=digit digit. output::=#line, line::=#(group SP), group::=#digit. Since the output is divided into groups of 5 characters and the input is divided into pairs, and 2 does not divide into 5, THEN this problem is best treated as two parallel but connected problems. One proble is to encrypot the paired digits, and the other is to group the encrypted digits into 5s. Like this: input->(p1)->(p2)->output where p1 takes the input and incrypts using the 'pf' function, and p2 takes its input and lays it out in groups and lines. The design of p1 and p2 is then very easy. Code in C for the solution as two programs is in p1.c and p2.c. There are many implementation options: Batch file + intermediate file (DOS like) ->sequence Pipe -> pipe Ada tasks+rendezvous -> crypto.ada C using pipe and fork -> cryptop.c C using restartable code ->crypto.c.