program UocSo;
var
n, i, maxUoc, tong, soNhieuUoc, divisors, j: integer;
function UocLonNhat(n: integer): integer;
begin
for i := n - 1 downto 1 do
begin
if n mod i = 0 then
begin
UocLonNhat := i;
break;
end;
end;
end;
function TongChuSo(n: integer): integer;
begin
tong := 0;
while n > 0 do
begin
tong := tong + (n mod 10);
n := n div 10;
end;
TongChuSo := tong;
end;
function SoNhieuUoc(n: integer): integer;
begin
maxUoc := 0;
soNhieuUoc := 0;
for i := 1 to n do
begin
divisors := 0;
for j := 1 to i do
begin
if i mod j = 0 then
divisors := divisors + 1;
end;
if divisors >= maxUoc then
begin
maxUoc := divisors;
soNhieuUoc := i;
end;
end;
SoNhieuUoc := soNhieuUoc;
end;
begin
// Nhập số nguyên dương n từ bàn phím
writeln('Nhap so nguyen duong n (n < 10^4): ');
readln(n);
// Tìm ước của n lớn nhất nhỏ hơn n
maxUoc := UocLonNhat(n);
writeln('Uoc cua ', n, ' lon nhat nho hon ', n, ' la ', maxUoc);
// Tính tổng các chữ số của n
tong := TongChuSo(n);
writeln('Tong cac chu so cua ', n, ' la ', tong);
// Tìm số không vượt quá n có nhiều ước nguyên dương nhất
soNhieuUoc := SoNhieuUoc(n);
writeln('So co nhieu uoc nhat va khong vuot qua ', n, ' la ', soNhieuUoc);
end.