uses crt;
var a, b : array[1..21]of byte ;
i, j, n, m , nn, tuv: longint ;
lus : string ;
function kt_binary(s:string) : boolean ;
var i : longint ;
begin
kt_binary := True ;
for i := 1 to length(s) do
if (s[i] <> '1') and (s[i]<>'0') then
begin
kt_binary := False ;
break ;
end ;
end ;
begin
clrscr;
write('Nhap thap phan: '); readln(n);
repeat
write('Nhap nhi phan: ') ; readln(m);
str(m,lus);
until kt_binary(lus);
// thập sang nhị
i := 1 ;
write('Thap phan ',n,'=');
repeat
a[i] := n mod 2 ;
n := n div 2 ;
i := i + 1 ;
until n = 0 ;
for j := i - 1 downto 1 do write(a[j]);
write(' nhi phan');
writeln ;
// nhị sang thập
for i := 1 to length(lus) do
if lus[i]='1' then b[i]:=1 else b[i]:=0;
nn := 0 ;
for i := 1 to length(lus) do
begin
tuv := 1 ;
for j := 1 to length(lus) - 1 do
tuv := tuv *2 ;
nn := nn + b[i]*tuv ;
end ;
writeln('Nhi phan ',m,'=',nn,' Thap phan.');
end.