2.13. Viết chương trình nhập vào 1 số nguyên dương n ( 0 < n < = 32000) Hày cho biết số nguyên này là bội của tổng tất cả các chữ số của nó hay không? Nếu không thì hãy tìm một số nguyên dương m nhỏ hơn gần n nhất để cho m thỏa mãn tính chất trên? Dữ liệu nhập: Nhập từ bàn phím Dữ liệu xuất: Xuất ra File BAI.out.

2 câu trả lời

Uses crt;
Var n,i:longint;
function test(a:int64):boolean;
Var t,b:longint;
Begin
t:=0;
b:=a;
While a<>0 do
Begin
t:=t+a mod 10;
a:=a div 10;
end;
If (b mod t=0) then exit(true) else exit(false);
end;
Begin
readln(n);
For i:=n downto 1 do
If test(i) then Begin Write(i); break; end;
readln;
end.

Dữ liệu nhập: Nhập từ bàn phím
Dữ liệu xuất: Xuất ra File BAI.out.
Ví dụ 1:
Nhập: 12
File BAI.out:
Số 12 là bội của 1 + 2
Ví dụ 2:
Nhập: 25
File BAI.out:
Số 25 không là bội của 2 + 5, số nguyên dương nhỏ hơn gần số 25 nhất là số 24 thỏa mãn tính chất trên (Vì số 24 là bội của 2 +  4)