76 lines
1.7 KiB
Plaintext
76 lines
1.7 KiB
Plaintext
var
|
|
f : text;
|
|
n, n0, m, i, j, tmp : longint;
|
|
s : string;
|
|
|
|
function dec2hex(deca : longint) : string;
|
|
var
|
|
a : array[0..7] of byte;
|
|
i, j : byte;
|
|
begin
|
|
dec2hex := '';
|
|
i := 0;
|
|
while deca > 0 do
|
|
begin
|
|
a[i] := deca mod 16;
|
|
deca := deca div 16;
|
|
inc(i)
|
|
end;
|
|
dec(i);
|
|
for j := i downto 0 do
|
|
case a[j] of
|
|
0 : dec2hex := dec2hex + '0';
|
|
1 : dec2hex := dec2hex + '1';
|
|
2 : dec2hex := dec2hex + '2';
|
|
3 : dec2hex := dec2hex + '3';
|
|
4 : dec2hex := dec2hex + '4';
|
|
5 : dec2hex := dec2hex + '5';
|
|
6 : dec2hex := dec2hex + '6';
|
|
7 : dec2hex := dec2hex + '7';
|
|
8 : dec2hex := dec2hex + '8';
|
|
9 : dec2hex := dec2hex + '9';
|
|
10 : dec2hex := dec2hex + 'A';
|
|
11 : dec2hex := dec2hex + 'B';
|
|
12 : dec2hex := dec2hex + 'C';
|
|
13 : dec2hex := dec2hex + 'D';
|
|
14 : dec2hex := dec2hex + 'E';
|
|
15 : dec2hex := dec2hex + 'F'
|
|
end
|
|
end;
|
|
|
|
begin
|
|
assign(f, 'HEXA.INP');
|
|
reset(f);
|
|
read(f, n);
|
|
close(f);
|
|
m := n;
|
|
i := 0;
|
|
while m > 0 do
|
|
begin
|
|
inc(i);
|
|
tmp := 1;
|
|
for j := 1 to i - 1 do tmp := tmp * 16;
|
|
m := m + i * (tmp - tmp * 16)
|
|
end;
|
|
m := i;
|
|
for i := 1 to m - 1 do
|
|
begin
|
|
tmp := 1;
|
|
for j := 1 to i - 1 do tmp := tmp * 16;
|
|
n := n + i * (tmp - tmp * 16)
|
|
end;
|
|
n0 := (n + m - 1) div m;
|
|
for i := 1 to m - 1 do
|
|
begin
|
|
tmp := 1;
|
|
for j := 1 to i - 1 do tmp := tmp * 16;
|
|
n0 := n0 + tmp * 16 - tmp
|
|
end;
|
|
s := dec2hex(n0);
|
|
if n mod m > 0 then m := n mod m;
|
|
assign(f, 'HEXA.OUT');
|
|
rewrite(f);
|
|
writeln(f, s[m]);
|
|
close(f)
|
|
end.
|