restart: with(numtheory): printlevel:=0: code := 73925536862483695465822270351633011568227154340059336124982931811319397344529683980491740985239638580345924696117090988308038954374977338707222451602736591363491455228558982221474844489467316952930662176396671496219887464544990354378072207026393; N := 505310613275447044811476467043509210027860720928308332802484335750812540137605143334934333295410631790358472312141536716953221903504442025278591975389581204057515872281107200946750927497884374122073070367480370366508474428416672036931513915699519; d:=97825260659825558710366574439498398082395490713403764145815605040697381680002519296491482812898776634794123828283370597737044365472537304268284034957434432755168885985095591897997931497601588461750927813560521255091549464819973535848040262661315; G:=table([(11)="A",(12)="B",(13)="C",(14)="D",(15)="E",(16)="F",(17)="G",(18)="H",(19)="I",(20)="J",(21)="K",(22)="L",(23)="M",(24)="N",(25)="O",(26)="P",(27)="Q",(28)="R",(29)="S",(30)="T",(31)="U",(32)="V",(33)="W",(34)="X",(35)="Y",(36)="Z",(41)="a",(42)="b",(43)="c",(44)="d",(45)="e",(46)="f",(47)="g",(48)="h",(49)="i",(50)="j",(51)="k",(52)="l",(53)="m",(54)="n",(55)="o",(56)="p",(57)="q",(58)="r",(59)="s",(60)="t",(61)="u",(62)="v",(63)="w",(64)="x",(65)="y",(66)="z",(70)="0",(71)="1",(72)="2",(73)="3",(74)="4",(75)="5",(76)="6",(77)="7",(78)="8",(79)="9",(81)=" ",(82)="*",(83)="@",(84)=",",(85)=".",(86)="!",(87)="'",(88)="(",(89)=")",(90)="{",(91)="}",(92)="`?`",(93)="`&`",(94)="^",(95)="#",(96)="$",(97)="%",(98)="-",(99)="+",(37)="~",(38)="<",(39)=">",(40)="=",(67)=";",(68)=":",(69)="[",(80)="]",(10)="/"]): decode:=code&^d mod N; dec:=decode: word2:="decoded message: ": while dec>0 do y:=dec-(1000)*floor(dec/1000); word2:= cat(word2,G[y]); dec:=floor(dec/1000): end do; print(word2);