Тема: Анализ программы, содержащей циклы и ветвления. Задание 20
1) Укажите минимальное натуральное число, при вводе которого этот алгоритм напечатает сначала 7, а потом – 12.
var x, a, b: longint;
begin
readln(x);
a := 0; b := 1;
while x > 0 do begin
if x mod 2 > 0 then
a := a + x mod 12
else
b := b * (x mod 12);
x := x div 12;
end;
writeln(a); write(b);
end.
2) Укажите минимальное натуральное число, при вводе которого этот алгоритм напечатает число 11.
var x, a, b, d: longint;
begin
readln(x);
a := 0; b := 10;
while x > 0 do begin
d := x mod 7;
if d > a then a := d;
if d < b then b := d;
x := x div 7
end;
writeln(a+b)
end.
3) Укажите минимальное двузначное натуральное число, при вводе которого этот алгоритм напечатает число 8.
var x, a, b, d: longint;
begin
readln(x);
a := 0; b := 10;
while x > 0 do begin
d := x mod 6;
if d > a then a := d;
if d < b then b := d;
x := x div 6
end;
writeln(a+b)
end.
4) Получив на вход натуральное число x, этот алгоритм печатает два числа: a и b. Сколько существует таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 12?
var x, a, b: longint;
begin
readln(x);
a := 0; b := 1;
while x > 0 do begin
a := a+1;
if (x mod 14) <> 0 then
b := b*(x mod 14);
x := x div 14;
end;
writeln(a); write(b);
end.
5. Получив на вход натуральное число x, этот алгоритм печатает два числа: a и b. Укажите наибольшее трёхзначное натуральное число, при вводе которого алгоритм печатает сначала 4, а потом тоже - 4.
var x, a, b: longint;
begin
readln(x);
a := 0; b := 0;
while x > 0 do begin
if x mod 2 = 0 then
a := a + x mod 5
else
b := b + x mod 5;
x := x div 5;
end;
writeln(a); write(b);
end.
6. Получив на вход натуральное число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее четырёхзначное натуральное число, при вводе которого алгоритм печатает сначала 4, а потом тоже - 4.
var x, a, b: longint;
begin
readln(x);
a := 0; b := 0;
while x > 0 do begin
if x mod 2 > 0 then
a := a + x mod 9
else
b := b + x mod 9;
x := x div 9;
end;
writeln(a); write(b);
end.
7. Получив на вход натуральное число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее натуральное число, при вводе которого алгоритм печатает сначала 3, а потом 12.
var x, a, b: longint;
begin
readln(x);
a := 0; b := 1;
while x > 0 do begin
if x mod 2 > 0 then
a := a + x mod 13
else
b := b * (x mod 13);
x := x div 13;
end;
writeln(a); write(b);
end.