Предмет: Информатика,
автор: Koshechka565656
Ниже записан алгоритм. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 4, а потом 13.
var x, a, b: integer;
begin
readln(x);
a := 0; b := 1;
while x > 0 do begin
a := a+2;
b := b*(x mod 1000);
x := x div 1000;
end;
writeln(a); write(b);
end.
Ответы
Автор ответа:
0
Сначала смотрим на то, что происходит в цикле с переменной а. К ней добавляются по 2 единицы за шаг цикла. Так как программа выводит значение а, равное 4, делаем вывод, что цикл повторится 2 раза.
Далее посмотрим на условие окончания. Цикл с предусловием while будет выполниться, пока x больше 0, а в самом цикле происходит целочислительное деление x на 1000, что означает "отщепление" от числа по 3 цифры младших разрядов. Из этого следует, что число должно иметь как минимум 4 цифры, чтобы цикл повторился 2 раза.
Значение b должно быть равно 13. 13 - простое число. Следовательно, равно 1*13. Поставим 13 в левый конец числа, а 1 - в правый. Третий и второй знаки будут равны 0. Таким образом получим число 13001.
Ответ: 13001
Далее посмотрим на условие окончания. Цикл с предусловием while будет выполниться, пока x больше 0, а в самом цикле происходит целочислительное деление x на 1000, что означает "отщепление" от числа по 3 цифры младших разрядов. Из этого следует, что число должно иметь как минимум 4 цифры, чтобы цикл повторился 2 раза.
Значение b должно быть равно 13. 13 - простое число. Следовательно, равно 1*13. Поставим 13 в левый конец числа, а 1 - в правый. Третий и второй знаки будут равны 0. Таким образом получим число 13001.
Ответ: 13001
Похожие вопросы
Предмет: Математика,
автор: polinacher2706
Предмет: Английский язык,
автор: Аноним
Предмет: Русский язык,
автор: amina3945
Предмет: Математика,
автор: Аноним
Предмет: Геометрия,
автор: Totilya