Var
i:integer;
n,m:longint;
begin
Write('Введите натуральное m: '); Read(m);
n:=1;
repeat
n:=3*n; Inc(i)
until n>m;
Writeln('3^',i-1,' = ',n div 3,' не превышает ',m)
end.
<em><u>Тестовые решения:</u></em>
Введите натуральное m: 1
3^0 = 1 не превышает 1
Введите натуральное m: 3
3^1 = 3 не превышает 3
Введите натуральное m: 54652341
3^16 = 43046721 не превышает 54652341
Приведём вычисляемое выражение к более удобному виду:
9^22 + 3^66 – 18 = 9^22 + 9^(66/2) – 18 = 9^33 + 9^22 - 18
Далее переведём некоторые числа в третичную систему:
9-10 = 100-3
18-10 = 200-3
[1] Заметим, что число 9^n при n > 0 является круглым в третичной системе и двойки в нём содержаться не будет.
Рассмотрим выражение: 9^(n+m) + 9^n - 18
Вычислим это выражение для m=1 и n от 2 до 8, получится следующее:
n=2: K=1 : R=1002100
n=3: K=3 : R=100222100
n=4: K=5 : R=10022222100
n=5: K=7 : R=1002222222100
n=6: K=9 : R=100222222222100
n=7: K=11 : R=10022222222222100
n=8: K=13 : R=1002222222222222100
где n - степень; R - результат в третичной системе; K - кол-во двоек в R;
Из утверждения [1] и на основе полученных выше результатах видно, что слагаемое 9^(n+m) при m >= 1 на кол-во двоек в результате R никогда влиять не будет, поэтому его можно опустить.
(т.е. в нашем случае 9^33 отбрасываем)
Также в полученых выше результатах на основе анализа зависимости K от n для 9^n - 18 выводится следущая формула:
[2] K(n) = (n - 1) * 2 - 1
Подставляя число 22 в формулу [2], получаем: K(22) = (22 - 1) * 2 - 1 = 41;
Ответ: в выражении 9^22 + 3^66 – 18 в третичной системе будет содержаться 41 двойка.
Avast , Kasper , Eset 32 , Norton (не советую Нортон)
var a,b: real;
begin
write('Введите число a: ');
readln(a);
write('Введите число b: ');
readln(b);
if (a>0) then writeln('Число a является положительным') else writeln('Число a является отрицательным');
if (b>0) then writeln('Число b является положительным') else writeln('Число b является отрицательным');
readln;
end.
1 мегабайт это 8 мегабит
файл весит 12 * 20 = 240 мегабит
переводим в мегабайты
240/8 = 30 мегабайт