blob: a2fd6ca8acb67bf1003eb2b3686b0a53ee12da08 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
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.
|