Работа 3.4 Упр.4 Задание 3 ГДЗ Семакин 10 класс (Информатика)
Пример: N = 44. Числа: 18, 24.
Сначала найдём сумму цифр числа $$N$$. Затем переберём все числа от $$1$$ до $$N-1$$ и для каждого вычислим произведение его цифр. Если произведение цифр равно сумме цифр числа $$N$$, то такое число выводим.
Для решения удобно использовать две функции:
- SumD(k) — находит сумму цифр числа $$k$$;
- Good(k, s) — проверяет, равно ли произведение цифр числа $$k$$ числу $$s$$.
function SumD(k: integer): integer;
begin
Result := 0;
while k > 0 do
begin
Result := Result + k mod 10;
k := k div 10;
end;
end;function Good(k, s: integer): boolean;
var p: integer;
begin
p := 1;
while k > 0 do
begin
p := p * (k mod 10);
k := k div 10;
end;
Result := p = s;
end;begin
var n := ReadInteger(‘n=’);
var s := SumD(n);
Range(1, n — 1).Where(n -> Good(n, s)).Println
end.
Если подходящих чисел нет, будет выведено слово нет.
Ответ: программа выводит все числа от $$1$$ до $$N-1$$, у которых произведение цифр равно сумме цифр числа $$N$$; если таких чисел нет — нет.