今日は(3)までできました。Haskellでやっています。

*CollatzMod> main
素数pを入力してください
7
Z/pZ : [0,1,2,3,4,5,6]
A : [[0],[1,2,4],[3,5,6]]
Z/3pZ : [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
B : [[1,2,4,8,11,16],[5,10,13,17,19,20]]
(3) tuple : [([0],Just [1,2,4,8,11,16]),([1,2,4],Just [1,2,4,8,11,16]),([1,2,4],Nothing),([3,5,6],Just [5,10,13,17,19,20]),([1,2,4],Just [5,10,13,17,19,20]),([3,5,6],Just [1,2,4,8,11,16])]
*CollatzMod>