algorithms, games, recreational number theory and music