Напишите программу, которая вводит натуральное число и находит все числа на отрезке [0, N], сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8 и 9 (например, число 9). Используйте функцию для вычисления суммы цифр числа.
function sol(a:integer):integer; var i,k:integer; s:string; begin k:=0; str(a,s); for i:=1 to length(s) do k:=k+strtoint(s[i]); sol:=k; end;
begin readln(n); for i:=0 to n do if (sol(i*2)=sol(i*3)) and (sol(i*3)=sol(i*4)) and (sol(i*4)=sol(i*5)) and (sol(i*5)=sol(i*6)) and (sol(i*6)=sol(i*7)) and (sol(i*7)=sol(i*8)) and (sol(i*8)=sol(i*9)) then writeln(i); end.
Пример ввода: 555 Пример вывода: 0 9 18 45 90 99 180 198 297 396 450 495 549
Answers & Comments
Verified answer
//Pascal ABC.NET v3.0 сборка 1111Var
n,i:integer;
function sol(a:integer):integer;
var
i,k:integer;
s:string;
begin
k:=0;
str(a,s);
for i:=1 to length(s) do
k:=k+strtoint(s[i]);
sol:=k;
end;
begin
readln(n);
for i:=0 to n do
if (sol(i*2)=sol(i*3)) and (sol(i*3)=sol(i*4)) and (sol(i*4)=sol(i*5)) and (sol(i*5)=sol(i*6)) and (sol(i*6)=sol(i*7)) and (sol(i*7)=sol(i*8)) and (sol(i*8)=sol(i*9)) then writeln(i);
end.
Пример ввода:
555
Пример вывода:
0
9
18
45
90
99
180
198
297
396
450
495
549