var ALPH_ENG,message,code,decode:string;
n,k,i,buff:integer;
function nod(x,y:integer):integer;
begin
if (y=0) then nod:=x else
nod:=nod(y,(x mod y));
end;
begin
ALPH_ENG:='abcdefghijklmnopqrstuvwxyz';
write('Enter your message:');
readln(message);
write('Enter k:');
readln(k);
repeat
write('Enter n:');
readln(n);
writeln('nod=',nod(n,26)) ;
until( nod(n,26)=1);
for i:=1 to length(message) do code:=code+ALPH_ENG[((Ord(message[i])-96)*n +k) mod 26];
writeln('code=',code);
for i:=1 to length(code) do
begin
buff:=Ord(code[i])-96-k;
if (buff < 0) then buff:=buff+26;
while (buff mod n >0) do buff:= 26+buff;
buff:=buff div n;
decode:=decode+ALPH_ENG[(buff) mod 26];
end;
writeln('decode=',decode);
readln;
end.