Предмет: Информатика, автор: PO3TER

Помогите с двумя заданиями, заранее спасибо
1)Ниже записан алгоритм. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 2.
var x, a, b, c: integer;
begin
readln(x);
a:= 0;
b:= 0;
while x > 0 do begin
c:= x mod 2;
if c = 0 then a:= a + 1
else b:= b + 1;
x:= x div 10;
end;
writeln(a);
writeln(b);
end.

2)
Ниже записана программа. Получив на вход число x, эта программа печатает два числа, L и M . Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 120.
var x, L, M: integer;
begin
readln(x);
L:=0;
M:=1;
while x > 0 do begin
L:=L+1;
M:= M*(x mod 8);
x:= x div 8;
end;
writeln(L);
write(M);
end.

Ответы

Автор ответа: petyaGavrikov
5
1) В переменной a вычисляется количество четных цифр в числе x, в переменной b - количество нечетных цифр. Общее количество цифр в числе = 3+2=5. Наименьшее пятизначное число, удовлетворяющее условиям = 10001.

2) В переменной L вычисляется количество цифр в числе x, следовательно искомое число трехзначное. Значение 120 можно получить как результат 4*5*6 (все сомножетели >=1 и <=7). Так как в цикле x меняется по правилу x:=x div 8, то искомое число = 654(8) = 428(10).
Похожие вопросы
Предмет: Алгебра, автор: ledkova20022
Предмет: Алгебра, автор: yarikdoroshenko1