пусть исходное число будет abc, где a - первая цифра, b - вторая, c - третья.
b,c - цифры => они принимают целые значения от 0 до 9. так как число трехзначное, то a не может быть равно 0 => a принимает целые значения от 1 до 9.
произведение двух цифр не превосходит 9*9=81.
ищем произведения цифр числе 123:
1 и 23 - неверно(1=1*1, но 23=1*c=> c=23> 9)
12 и 3 - верно(1*3 и 3*4, записаны в порядке убывания)
нам нужно найти наименьшее число, значит значения a и b как первых цифр числа должны быть минимальны.
по условию:
a*b=3
b*c=12
подбираем значения a,b и c:
a=1; b=3; c=12/3=4 - верно, число 134
a=3; b=1; c=12/1=12 - неверно
в итоге, получили, что число 134 - минимальное.
ответ: 134
var a: array[1..1000] of integer; n, i, j: integer; flag: boolean; begin a[1] : = 0; write('n = '); readln(n); for i : = 2 to trunc(sqrt(n)) do if n mod i = 0 then begin a[1] : = i; n : = n div i; break; end; if a[1] = 0 then begin writeln(n); exit; end; i : = 1; while n < > 1 do begin flag : = false; for j : = a[i] to trunc(sqrt(n)) do if n mod j = 0 then begin a[i + 1] : = j; inc(i); n : = n div j; flag : = true; break; end; if (not flag) and (n < > 1) then begin a[i + 1] : = n; inc(i); break; end; end;
//вторая программа
const m = 4; n = 3; var a: array[1..m, 1..n] of integer; i, j, pr: integer; begin randomize; pr : = 1; writeln('исходный массив'); for i : = 1 to m do begin for j : = 1 to n do begin a[i, j] : = random(21) - 10; if a[i, j] > 0 then pr : = pr * a[i, j]; write(a[i, j]: 4, ' '); end; writeln; end; writeln; writeln('преобразованный массив'); for i : = 1 to m do begin for j : = 1 to n do if a[i, j] < 0 then write(pr: 8, ' ') else write(a[i, j]: 8, ' '); writeln; end; readln; end.
for j : = 1 to i do write(a[j], ' '); readln; end.
Поделитесь своими знаниями, ответьте на вопрос: