1. Вправо, вниз, вниз. Вниз, вниз, вправо. Вниз, вправо, вниз.
2. А. Нет Б. Нет В. Да Г. Да Д. Да Е. Нет
Тут все достаточно просто.
Вычитать 4 из 2 смысла нет: получим -2 и что с ним дальше делать?
Возведя -2 в квадрат, получим 4, но зачем 4 получать за две команды, когда можно сразу возвести исходную двойку в квадрат? А дальнейшее вычитание даст -6, квадрат -6 это 36, что никак не напоминает 64.
Поэтому первая команда - это "возведи в квадрат" и мы получим 4.
Из 4 вычитать 4 смыла никакого: получим ноль и дальше что? В квадрат возводить его смысла нет, вычитать еще 4 - будет -4 - и зачем оно нам, когда у нас 4 и так есть? Так что остается опять только "возведи в квадрат". Получаем 16 и это была вторая команда.
Вот 16 в квадрат возводить уж точно смысла нет: зачем нам 256, когда идем к 64? Так что теперь - только "вычти 4". Получим 12.
С 12 такое же рассуждение, 144 - это много. Опять "вычти 4" и получили 8.
Отлично, последняя команда "возведи в квадрат" и мы получили 64!
Ответ: 11221
Решение можно получить, рассуждая следующим образом.
Максимальное количество возможных сложений равно количеству команд и это дает в результате 1+1+1+1+1+1=6, но никак не 45. Разница большая, поэтому её надо преодолевать пр помощи умножения.
Пойдем от обратных операций - будем из 45 получать 1 путем деления на 3 и вычитания 1.
1) 45/3=15 2) 15/3=5 3) 5 на 3 не делится, вычитаем 1 и получаем 4. 4) 4 на 3 не делится, вычитаем 1 и получаем 3. 5) 3/3=1 - мы пришли к 1 за 5 команд.
Теперь осталось записать в обратном порядке команды калькулятора.
Мы должны получить следующие шаги: 1) 1х3=3 2) 3+1=4 3) 4+1=5 4)5х3=15 5) 15х3=15.
Ответ: 21122
Var s:string;
begin
s:=chr(66)+chr(69)+chr(71)+chr(79)+chr(78);
writeln(s);
end.
Результат:
BEGON
Var A,i,k:byte;
Begin
Write('Простые двузначные числа:');
For A:= 10 to 99 do
Begin
k:=0;
For i:= 2 to A div 2 do
if A mod i = 0 then k:=k+1;
if k = 0 then Write(' ',A)
End
End.
Результат работы программы:
Простые двузначные числа: 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97